ECG LSTM Patch CGAN¶

Data load¶

In [ ]:
import os
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
import wfdb  # .dat 파일을 다루기 위한 라이브러리
import torch.nn as nn
import torch.nn.functional as F
from torch.utils.data.dataset import random_split
import matplotlib.pyplot as plt


class ECGDataset(Dataset):
    def __init__(self, directory):
        self.data = []
        segment_length = 1600 # 2초 길이의 샘플 수

        # 모든 환자 디렉터리 반복
        for patient_num in range(1, 93):
            patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
            seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
            
            for seg_file in seg_files:
                data_file = os.path.join(patient_dir, seg_file)
                header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
                
                num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
                ii_raw_index = channel_names.index('II-Raw')
                ii_index = channel_names.index('II')
                
                ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
                
                # 각 세그먼트를 2초씩 잘라서 저장
                num_segments = 5
                for i in range(num_segments):
                    start = i * segment_length
                    end = start + segment_length
                    segment_data = {
                        "II-Raw": ecg_data[ii_raw_index][start:end],
                        "II": ecg_data[ii_index][start:end]
                    }

                    # 데이터 평균을 0으로 만들기
                    segment_data = {key: (value - np.mean(value)) / np.std(value) for key, value in segment_data.items()}
                    
                    self.data.append(segment_data)

    def parse_header(self, file_path):
        with open(file_path, 'r', encoding='latin1') as file:
            lines = file.readlines()
        num_channels = int(lines[0].split(' ')[1])
        samples_per_channel = int(lines[0].split(' ')[3])
        channel_names = []
        for line in lines[1:num_channels+1]:
            channel_info = line.split(' ')
            channel_names.append(channel_info[-1].strip())
        return num_channels, samples_per_channel, channel_names

    def load_ecg_data(self, num_channels, samples_per_channel, data_file):
        ecg_data = np.fromfile(data_file, dtype='int16')
        ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
        return ecg_data

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        sample = self.data[idx]
        return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}

# 데이터셋과 데이터 로더 설정
dataset_directory = './wilson-central-terminal-ecg-database-1.0.1'

ecg_dataset = ECGDataset(dataset_directory)
In [ ]:
# 데이터셋의 전체 길이 확인
dataset_size = len(ecg_dataset)
print("데이터셋 크기:", dataset_size)

ecg1 = ecg_dataset[0]
ecg_signal_size = len(ecg1['II-Raw'])
print('신호 길이:', ecg_signal_size)
데이터셋 크기: 2700
신호 길이: 1600
In [ ]:
ecg1['II-Raw'].shape
Out[ ]:
torch.Size([1600])
In [ ]:
# 데이터셋의 길이를 구합니다.
total_size = len(ecg_dataset)

# 훈련 세트와 테스트 세트의 크기를 정합니다. 여기서는 80:20 비율을 사용합니다.
train_size = int(total_size * 0.8)
test_size = total_size - train_size

# random_split의 seed 고정
seed = torch.Generator().manual_seed(42)

# random_split을 사용하여 데이터셋을 나눕니다.
train_dataset, test_dataset = random_split(ecg_dataset, [train_size, test_size], generator=seed)

train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)

Conditional GAN¶

In [ ]:
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f'Using device: {device}')
Using device: cuda
In [ ]:
signal_dim = 1      # 1, 1600
noised_dim = 1      # 1, 1600

class Generator(nn.Module):
    def __init__(self):
        super(Generator, self).__init__()

        self.gen_encoder1 = nn.Conv1d(1, 8, kernel_size=5, stride=1, padding=2)     # (batch, 1, 1600) -> (batch, 8, 1600)
        self.gen_encoder2 = nn.Conv1d(8, 16, kernel_size=5, stride=2, padding=2)    # (batch, 8, 1600) -> (batch, 16, 800)
        self.gen_encoder3 = nn.Conv1d(16, 32, kernel_size=5, stride=2, padding=2)   # (batch, 16, 800) -> (batch, 32, 400)
        self.gen_encoder4 = nn.Conv1d(32, 64, kernel_size=5, stride=2, padding=2)   # (batch, 32, 400) -> (batch, 64, 200)

        self.lstm = nn.LSTM(input_size=64, hidden_size=64, num_layers=1, batch_first=True)  # LSTM layer

        self.dropout = nn.Dropout(0.5)

        self.gen_decoder1 = nn.ConvTranspose1d(64, 32, kernel_size=5, stride=2, padding=2, output_padding=1)    # (batch, 64, 200) -> (batch, 32, 400)
        self.gen_decoder2 = nn.ConvTranspose1d(32, 16, kernel_size=5, stride=2, padding=2, output_padding=1)    # (batch, 32, 400) -> (batch, 16, 800)
        self.gen_decoder3 = nn.ConvTranspose1d(16, 8, kernel_size=5, stride=2, padding=2, output_padding=1)     # (batch, 16, 800) -> (batch, 8, 1600)
        self.gen_decoder4 = nn.ConvTranspose1d(8, 1, kernel_size=5, stride=1, padding=2)                        # (batch, 8, 1600) -> (batch, 1, 1600)

    def forward(self, noised_signal):
        z = F.leaky_relu(self.gen_encoder1(noised_signal), 0.2)
        z = F.leaky_relu(self.gen_encoder2(z), 0.2)
        z = F.leaky_relu(self.gen_encoder3(z), 0.2)
        z = F.leaky_relu(self.gen_encoder4(z), 0.2)

        z = z.transpose(1, 2)
        z, _ = self.lstm(z)
        z = z.transpose(1, 2)

        z = self.dropout(z)

        z = F.leaky_relu(self.gen_decoder1(z), 0.2)
        z = F.leaky_relu(self.gen_decoder2(z), 0.2)
        z = F.leaky_relu(self.gen_decoder3(z), 0.2)
        output = self.gen_decoder4(z)        
        return output

class Discriminator(nn.Module):
    def __init__(self, signal_dim, noised_dim):
        super(Discriminator, self).__init__()

        self.conv1 = nn.Conv1d(signal_dim + noised_dim, 32, kernel_size=4, stride=2, padding=1)
        self.conv2 = nn.Conv1d(32, 64, kernel_size=4, stride=2, padding=1)
        self.conv3 = nn.Conv1d(64, 128, kernel_size=4, stride=2, padding=1)
        self.conv4 = nn.Conv1d(128, 256, kernel_size=4, stride=2, padding=1)
        self.conv5 = nn.Conv1d(256, 512, kernel_size=4, stride=1, padding=1)
        self.conv6 = nn.Conv1d(512, 1, kernel_size=4, stride=1, padding=1)

    def forward(self, x, condition):
        x = torch.cat([x, condition], dim=1)  # Concatenate along the channel dimension
        x = F.leaky_relu(self.conv1(x), 0.2)
        x = F.leaky_relu(self.conv2(x), 0.2)
        x = F.leaky_relu(self.conv3(x), 0.2)
        x = F.leaky_relu(self.conv4(x), 0.2)
        x = F.leaky_relu(self.conv5(x), 0.2)
        x = torch.sigmoid(self.conv6(x))
        return x
In [ ]:
# 하이퍼파라미터 설정
num_epochs = 200
learning_rate = 0.0001

# L1 loss 가중치
beta = 50
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)

optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)

# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
def train(train_loader):
    generator.train()
    discriminator.train()
    
    for epoch in range(num_epochs):
        for i, data in enumerate(train_loader):
            real = torch.ones(data['II'].shape[0], 1, 98).to(device)   # PatchGAN의 경우 shape 맞추기
            fake = torch.zeros(data['II'].shape[0], 1, 98).to(device)  # 가짜(fake): 0

            denoised_signal = data['II'].unsqueeze(1).float().to(device)            # (batch, 1600) -> (batch, 1, 1600)
            noised_signal = data['II-Raw'].unsqueeze(1).float().to(device)          # (batch, 1600) -> (batch, 1, 1600)

            """ 생성자(generator)를 학습 """
            optimizer_G.zero_grad()

            generated_signal = generator(noised_signal)
            pred_fake = discriminator(generated_signal, noised_signal)

            loss_GAN = criterion_GAN(pred_fake, real)
            loss_pixel = criterion_pixelwise(generated_signal, denoised_signal)

            loss_G = loss_GAN + beta*loss_pixel

            loss_G.backward()
            optimizer_G.step()


            """ 판별자(discriminator)를 학습 """
            optimizer_D.zero_grad()

            pred_real = discriminator(denoised_signal, noised_signal)
            loss_real = criterion_GAN(pred_real, real)

            pred_fake = discriminator(generated_signal.detach(), noised_signal)
            loss_fake = criterion_GAN(pred_fake, fake)

            # Total loss
            loss_D = 0.5 * (loss_real + loss_fake)

            loss_D.backward()
            optimizer_D.step()
            
        print(f'Epoch {epoch + 1}/{num_epochs}, Pixel Loss: {loss_pixel.item()}, Generator Loss: {loss_G.item()}, Discriminator Loss: {loss_D.item()}')

# 훈련 시작
train(train_loader)
Epoch 1/200, Pixel Loss: 0.39206695556640625, Generator Loss: 20.619869232177734, Discriminator Loss: 0.4912847876548767
Epoch 2/200, Pixel Loss: 0.33092033863067627, Generator Loss: 17.262197494506836, Discriminator Loss: 0.5702711343765259
Epoch 3/200, Pixel Loss: 0.29239341616630554, Generator Loss: 15.539237022399902, Discriminator Loss: 0.6195992231369019
Epoch 4/200, Pixel Loss: 0.26786306500434875, Generator Loss: 14.22484302520752, Discriminator Loss: 0.6064471006393433
Epoch 5/200, Pixel Loss: 0.2463691681623459, Generator Loss: 13.160906791687012, Discriminator Loss: 0.595705509185791
Epoch 6/200, Pixel Loss: 0.2495196908712387, Generator Loss: 13.436988830566406, Discriminator Loss: 0.5709901452064514
Epoch 7/200, Pixel Loss: 0.2320133000612259, Generator Loss: 12.530221939086914, Discriminator Loss: 0.5317556858062744
Epoch 8/200, Pixel Loss: 0.20397323369979858, Generator Loss: 11.31005859375, Discriminator Loss: 0.432084858417511
Epoch 9/200, Pixel Loss: 0.20892946422100067, Generator Loss: 11.901796340942383, Discriminator Loss: 0.4020645022392273
Epoch 10/200, Pixel Loss: 0.22451789677143097, Generator Loss: 13.052505493164062, Discriminator Loss: 0.2651488482952118
Epoch 11/200, Pixel Loss: 0.21651135385036469, Generator Loss: 12.70083999633789, Discriminator Loss: 0.330175518989563
Epoch 12/200, Pixel Loss: 0.19072885811328888, Generator Loss: 11.490588188171387, Discriminator Loss: 0.46799224615097046
Epoch 13/200, Pixel Loss: 0.2703097462654114, Generator Loss: 15.413373947143555, Discriminator Loss: 0.32171788811683655
Epoch 14/200, Pixel Loss: 0.21348296105861664, Generator Loss: 12.515313148498535, Discriminator Loss: 0.49929121136665344
Epoch 15/200, Pixel Loss: 0.21774588525295258, Generator Loss: 12.326803207397461, Discriminator Loss: 0.4457626938819885
Epoch 16/200, Pixel Loss: 0.2192656248807907, Generator Loss: 12.04947280883789, Discriminator Loss: 0.48654651641845703
Epoch 17/200, Pixel Loss: 0.2583516538143158, Generator Loss: 14.649956703186035, Discriminator Loss: 0.3542785346508026
Epoch 18/200, Pixel Loss: 0.19350993633270264, Generator Loss: 11.323732376098633, Discriminator Loss: 0.3840012848377228
Epoch 19/200, Pixel Loss: 0.19299189746379852, Generator Loss: 11.107316970825195, Discriminator Loss: 0.40811389684677124
Epoch 20/200, Pixel Loss: 0.19388273358345032, Generator Loss: 11.926892280578613, Discriminator Loss: 0.39347130060195923
Epoch 21/200, Pixel Loss: 0.26392847299575806, Generator Loss: 14.838422775268555, Discriminator Loss: 0.4127093255519867
Epoch 22/200, Pixel Loss: 0.2769585847854614, Generator Loss: 16.175935745239258, Discriminator Loss: 0.3849363923072815
Epoch 23/200, Pixel Loss: 0.2169649451971054, Generator Loss: 13.03284740447998, Discriminator Loss: 0.3490813970565796
Epoch 24/200, Pixel Loss: 0.2293407917022705, Generator Loss: 13.571795463562012, Discriminator Loss: 0.32938945293426514
Epoch 25/200, Pixel Loss: 0.22851502895355225, Generator Loss: 13.887431144714355, Discriminator Loss: 0.30636805295944214
Epoch 26/200, Pixel Loss: 0.23198284208774567, Generator Loss: 14.118731498718262, Discriminator Loss: 0.38488274812698364
Epoch 27/200, Pixel Loss: 0.2624986171722412, Generator Loss: 14.965888977050781, Discriminator Loss: 0.4075140953063965
Epoch 28/200, Pixel Loss: 0.23710954189300537, Generator Loss: 14.37332820892334, Discriminator Loss: 0.245625302195549
Epoch 29/200, Pixel Loss: 0.22185130417346954, Generator Loss: 13.608104705810547, Discriminator Loss: 0.27794116735458374
Epoch 30/200, Pixel Loss: 0.1989719569683075, Generator Loss: 12.185248374938965, Discriminator Loss: 0.2471686452627182
Epoch 31/200, Pixel Loss: 0.20700611174106598, Generator Loss: 13.484435081481934, Discriminator Loss: 0.21937865018844604
Epoch 32/200, Pixel Loss: 0.22059135138988495, Generator Loss: 14.020630836486816, Discriminator Loss: 0.20620465278625488
Epoch 33/200, Pixel Loss: 0.2115357220172882, Generator Loss: 13.208044052124023, Discriminator Loss: 0.2363012135028839
Epoch 34/200, Pixel Loss: 0.19196628034114838, Generator Loss: 12.63949966430664, Discriminator Loss: 0.2319139540195465
Epoch 35/200, Pixel Loss: 0.21518008410930634, Generator Loss: 13.774110794067383, Discriminator Loss: 0.2449946403503418
Epoch 36/200, Pixel Loss: 0.20101909339427948, Generator Loss: 13.013513565063477, Discriminator Loss: 0.3501802086830139
Epoch 37/200, Pixel Loss: 0.2664041221141815, Generator Loss: 16.15334129333496, Discriminator Loss: 0.211246058344841
Epoch 38/200, Pixel Loss: 0.17646656930446625, Generator Loss: 12.002964973449707, Discriminator Loss: 0.26457923650741577
Epoch 39/200, Pixel Loss: 0.2263171672821045, Generator Loss: 14.704944610595703, Discriminator Loss: 0.25667867064476013
Epoch 40/200, Pixel Loss: 0.1916707158088684, Generator Loss: 12.57493782043457, Discriminator Loss: 0.29705750942230225
Epoch 41/200, Pixel Loss: 0.24848857522010803, Generator Loss: 15.981220245361328, Discriminator Loss: 0.2468433529138565
Epoch 42/200, Pixel Loss: 0.2061149775981903, Generator Loss: 12.374805450439453, Discriminator Loss: 0.3770815432071686
Epoch 43/200, Pixel Loss: 0.2012983113527298, Generator Loss: 13.37828540802002, Discriminator Loss: 0.20831739902496338
Epoch 44/200, Pixel Loss: 0.1969335377216339, Generator Loss: 12.807853698730469, Discriminator Loss: 0.2507227659225464
Epoch 45/200, Pixel Loss: 0.19695454835891724, Generator Loss: 13.06523323059082, Discriminator Loss: 0.23861587047576904
Epoch 46/200, Pixel Loss: 0.2290845811367035, Generator Loss: 14.649653434753418, Discriminator Loss: 0.4138769507408142
Epoch 47/200, Pixel Loss: 0.177690327167511, Generator Loss: 12.050416946411133, Discriminator Loss: 0.2887153923511505
Epoch 48/200, Pixel Loss: 0.18937556445598602, Generator Loss: 12.534070014953613, Discriminator Loss: 0.26956892013549805
Epoch 49/200, Pixel Loss: 0.2306526154279709, Generator Loss: 14.53172492980957, Discriminator Loss: 0.25153374671936035
Epoch 50/200, Pixel Loss: 0.17950446903705597, Generator Loss: 11.838966369628906, Discriminator Loss: 0.23513451218605042
Epoch 51/200, Pixel Loss: 0.186475470662117, Generator Loss: 12.043170928955078, Discriminator Loss: 0.19824184477329254
Epoch 52/200, Pixel Loss: 0.2035258561372757, Generator Loss: 12.531473159790039, Discriminator Loss: 0.3285735845565796
Epoch 53/200, Pixel Loss: 0.2133450210094452, Generator Loss: 12.750231742858887, Discriminator Loss: 0.30529555678367615
Epoch 54/200, Pixel Loss: 0.17701032757759094, Generator Loss: 11.99243450164795, Discriminator Loss: 0.27630770206451416
Epoch 55/200, Pixel Loss: 0.17906217277050018, Generator Loss: 12.451324462890625, Discriminator Loss: 0.29010140895843506
Epoch 56/200, Pixel Loss: 0.2009618729352951, Generator Loss: 12.628179550170898, Discriminator Loss: 0.28761911392211914
Epoch 57/200, Pixel Loss: 0.20667335391044617, Generator Loss: 13.813590049743652, Discriminator Loss: 0.2524157762527466
Epoch 58/200, Pixel Loss: 0.17282426357269287, Generator Loss: 12.001081466674805, Discriminator Loss: 0.22188293933868408
Epoch 59/200, Pixel Loss: 0.20165900886058807, Generator Loss: 12.665311813354492, Discriminator Loss: 0.24829618632793427
Epoch 60/200, Pixel Loss: 0.16195368766784668, Generator Loss: 11.322961807250977, Discriminator Loss: 0.20841600000858307
Epoch 61/200, Pixel Loss: 0.2023107409477234, Generator Loss: 13.771064758300781, Discriminator Loss: 0.23611143231391907
Epoch 62/200, Pixel Loss: 0.1847107708454132, Generator Loss: 12.458290100097656, Discriminator Loss: 0.22438868880271912
Epoch 63/200, Pixel Loss: 0.22314991056919098, Generator Loss: 14.310927391052246, Discriminator Loss: 0.2539277970790863
Epoch 64/200, Pixel Loss: 0.1999344378709793, Generator Loss: 12.924530982971191, Discriminator Loss: 0.26475048065185547
Epoch 65/200, Pixel Loss: 0.18316350877285004, Generator Loss: 12.326944351196289, Discriminator Loss: 0.25651228427886963
Epoch 66/200, Pixel Loss: 0.18634505569934845, Generator Loss: 12.602663040161133, Discriminator Loss: 0.18041443824768066
Epoch 67/200, Pixel Loss: 0.16523119807243347, Generator Loss: 10.743675231933594, Discriminator Loss: 0.28022071719169617
Epoch 68/200, Pixel Loss: 0.22712890803813934, Generator Loss: 14.492286682128906, Discriminator Loss: 0.27932509779930115
Epoch 69/200, Pixel Loss: 0.18459975719451904, Generator Loss: 12.348836898803711, Discriminator Loss: 0.17085418105125427
Epoch 70/200, Pixel Loss: 0.17287848889827728, Generator Loss: 11.480301856994629, Discriminator Loss: 0.2102023959159851
Epoch 71/200, Pixel Loss: 0.16718560457229614, Generator Loss: 11.943958282470703, Discriminator Loss: 0.19141840934753418
Epoch 72/200, Pixel Loss: 0.1945461630821228, Generator Loss: 12.463325500488281, Discriminator Loss: 0.2812296748161316
Epoch 73/200, Pixel Loss: 0.20854391157627106, Generator Loss: 14.374564170837402, Discriminator Loss: 0.22172726690769196
Epoch 74/200, Pixel Loss: 0.2070968896150589, Generator Loss: 13.170977592468262, Discriminator Loss: 0.2939909100532532
Epoch 75/200, Pixel Loss: 0.19819773733615875, Generator Loss: 13.869943618774414, Discriminator Loss: 0.21822121739387512
Epoch 76/200, Pixel Loss: 0.1827019900083542, Generator Loss: 13.26095199584961, Discriminator Loss: 0.21854890882968903
Epoch 77/200, Pixel Loss: 0.20998287200927734, Generator Loss: 14.027689933776855, Discriminator Loss: 0.14589977264404297
Epoch 78/200, Pixel Loss: 0.18552672863006592, Generator Loss: 12.59793472290039, Discriminator Loss: 0.3051702380180359
Epoch 79/200, Pixel Loss: 0.2221897691488266, Generator Loss: 14.989482879638672, Discriminator Loss: 0.2630409896373749
Epoch 80/200, Pixel Loss: 0.18965549767017365, Generator Loss: 13.488370895385742, Discriminator Loss: 0.2436220347881317
Epoch 81/200, Pixel Loss: 0.22056621313095093, Generator Loss: 14.462695121765137, Discriminator Loss: 0.21299508213996887
Epoch 82/200, Pixel Loss: 0.17003244161605835, Generator Loss: 12.900646209716797, Discriminator Loss: 0.16591672599315643
Epoch 83/200, Pixel Loss: 0.22899481654167175, Generator Loss: 14.65230655670166, Discriminator Loss: 0.5217152237892151
Epoch 84/200, Pixel Loss: 0.21071353554725647, Generator Loss: 14.900676727294922, Discriminator Loss: 0.14683696627616882
Epoch 85/200, Pixel Loss: 0.2020280659198761, Generator Loss: 14.024385452270508, Discriminator Loss: 0.24206724762916565
Epoch 86/200, Pixel Loss: 0.17836619913578033, Generator Loss: 12.414544105529785, Discriminator Loss: 0.22181546688079834
Epoch 87/200, Pixel Loss: 0.17951089143753052, Generator Loss: 12.418776512145996, Discriminator Loss: 0.20292502641677856
Epoch 88/200, Pixel Loss: 0.17197772860527039, Generator Loss: 12.265453338623047, Discriminator Loss: 0.20776160061359406
Epoch 89/200, Pixel Loss: 0.19634568691253662, Generator Loss: 13.531597137451172, Discriminator Loss: 0.22096067667007446
Epoch 90/200, Pixel Loss: 0.20662616193294525, Generator Loss: 14.582246780395508, Discriminator Loss: 0.34136664867401123
Epoch 91/200, Pixel Loss: 0.220137357711792, Generator Loss: 14.765512466430664, Discriminator Loss: 0.18080922961235046
Epoch 92/200, Pixel Loss: 0.16378459334373474, Generator Loss: 13.217025756835938, Discriminator Loss: 0.21086330711841583
Epoch 93/200, Pixel Loss: 0.17916758358478546, Generator Loss: 13.379494667053223, Discriminator Loss: 0.22649535536766052
Epoch 94/200, Pixel Loss: 0.1661853790283203, Generator Loss: 13.112991333007812, Discriminator Loss: 0.09402906894683838
Epoch 95/200, Pixel Loss: 0.22475703060626984, Generator Loss: 15.449575424194336, Discriminator Loss: 0.1379745602607727
Epoch 96/200, Pixel Loss: 0.1851581484079361, Generator Loss: 12.890544891357422, Discriminator Loss: 0.16189336776733398
Epoch 97/200, Pixel Loss: 0.1908087432384491, Generator Loss: 14.110868453979492, Discriminator Loss: 0.1749994307756424
Epoch 98/200, Pixel Loss: 0.15973719954490662, Generator Loss: 12.222156524658203, Discriminator Loss: 0.16569945216178894
Epoch 99/200, Pixel Loss: 0.20927472412586212, Generator Loss: 14.882354736328125, Discriminator Loss: 0.17795515060424805
Epoch 100/200, Pixel Loss: 0.17097440361976624, Generator Loss: 12.927815437316895, Discriminator Loss: 0.13032278418540955
Epoch 101/200, Pixel Loss: 0.1944606900215149, Generator Loss: 14.336282730102539, Discriminator Loss: 0.16332392394542694
Epoch 102/200, Pixel Loss: 0.18008418381214142, Generator Loss: 13.380409240722656, Discriminator Loss: 0.1568404585123062
Epoch 103/200, Pixel Loss: 0.17939090728759766, Generator Loss: 14.017507553100586, Discriminator Loss: 0.26087436079978943
Epoch 104/200, Pixel Loss: 0.1583746373653412, Generator Loss: 12.084163665771484, Discriminator Loss: 0.17016562819480896
Epoch 105/200, Pixel Loss: 0.16764438152313232, Generator Loss: 12.601003646850586, Discriminator Loss: 0.13789238035678864
Epoch 106/200, Pixel Loss: 0.19067879021167755, Generator Loss: 13.355319023132324, Discriminator Loss: 0.19846776127815247
Epoch 107/200, Pixel Loss: 0.18688637018203735, Generator Loss: 13.728151321411133, Discriminator Loss: 0.10794668644666672
Epoch 108/200, Pixel Loss: 0.18155571818351746, Generator Loss: 14.395334243774414, Discriminator Loss: 0.13701896369457245
Epoch 109/200, Pixel Loss: 0.20151996612548828, Generator Loss: 14.06252384185791, Discriminator Loss: 0.13387151062488556
Epoch 110/200, Pixel Loss: 0.18398340046405792, Generator Loss: 13.712345123291016, Discriminator Loss: 0.11007143557071686
Epoch 111/200, Pixel Loss: 0.188456192612648, Generator Loss: 13.949087142944336, Discriminator Loss: 0.15722528100013733
Epoch 112/200, Pixel Loss: 0.16767355799674988, Generator Loss: 13.081933975219727, Discriminator Loss: 0.14592570066452026
Epoch 113/200, Pixel Loss: 0.18069057166576385, Generator Loss: 14.118234634399414, Discriminator Loss: 0.1374659687280655
Epoch 114/200, Pixel Loss: 0.17709708213806152, Generator Loss: 12.672653198242188, Discriminator Loss: 0.15989422798156738
Epoch 115/200, Pixel Loss: 0.18762850761413574, Generator Loss: 13.890693664550781, Discriminator Loss: 0.11232885718345642
Epoch 116/200, Pixel Loss: 0.18008628487586975, Generator Loss: 13.4277925491333, Discriminator Loss: 0.11689715087413788
Epoch 117/200, Pixel Loss: 0.21962261199951172, Generator Loss: 15.513543128967285, Discriminator Loss: 0.6708707213401794
Epoch 118/200, Pixel Loss: 0.1738777458667755, Generator Loss: 13.366241455078125, Discriminator Loss: 0.12987057864665985
Epoch 119/200, Pixel Loss: 0.17965483665466309, Generator Loss: 14.570572853088379, Discriminator Loss: 0.109450563788414
Epoch 120/200, Pixel Loss: 0.21934014558792114, Generator Loss: 16.170703887939453, Discriminator Loss: 0.1182127296924591
Epoch 121/200, Pixel Loss: 0.15437349677085876, Generator Loss: 13.930120468139648, Discriminator Loss: 0.15380218625068665
Epoch 122/200, Pixel Loss: 0.21772754192352295, Generator Loss: 14.983885765075684, Discriminator Loss: 0.2617679834365845
Epoch 123/200, Pixel Loss: 0.16883014142513275, Generator Loss: 13.417669296264648, Discriminator Loss: 0.1264858841896057
Epoch 124/200, Pixel Loss: 0.17789840698242188, Generator Loss: 14.181800842285156, Discriminator Loss: 0.14554345607757568
Epoch 125/200, Pixel Loss: 0.21030250191688538, Generator Loss: 15.719329833984375, Discriminator Loss: 0.1753624975681305
Epoch 126/200, Pixel Loss: 0.17279700934886932, Generator Loss: 13.23509407043457, Discriminator Loss: 0.17005376517772675
Epoch 127/200, Pixel Loss: 0.21865446865558624, Generator Loss: 16.28838539123535, Discriminator Loss: 0.19377219676971436
Epoch 128/200, Pixel Loss: 0.187631756067276, Generator Loss: 13.533557891845703, Discriminator Loss: 0.16681452095508575
Epoch 129/200, Pixel Loss: 0.19721660017967224, Generator Loss: 14.997774124145508, Discriminator Loss: 0.13442286849021912
Epoch 130/200, Pixel Loss: 0.21395355463027954, Generator Loss: 16.059173583984375, Discriminator Loss: 0.1265236735343933
Epoch 131/200, Pixel Loss: 0.21020808815956116, Generator Loss: 15.118551254272461, Discriminator Loss: 0.1779852658510208
Epoch 132/200, Pixel Loss: 0.18066321313381195, Generator Loss: 14.316168785095215, Discriminator Loss: 0.07845483720302582
Epoch 133/200, Pixel Loss: 0.1611448973417282, Generator Loss: 13.584514617919922, Discriminator Loss: 0.13532502949237823
Epoch 134/200, Pixel Loss: 0.20367640256881714, Generator Loss: 15.400361061096191, Discriminator Loss: 0.16843390464782715
Epoch 135/200, Pixel Loss: 0.20514020323753357, Generator Loss: 15.138099670410156, Discriminator Loss: 0.11835415661334991
Epoch 136/200, Pixel Loss: 0.20501147210597992, Generator Loss: 15.649789810180664, Discriminator Loss: 0.10940105468034744
Epoch 137/200, Pixel Loss: 0.17683836817741394, Generator Loss: 14.913768768310547, Discriminator Loss: 0.14872582256793976
Epoch 138/200, Pixel Loss: 0.18482977151870728, Generator Loss: 14.481679916381836, Discriminator Loss: 0.12381315231323242
Epoch 139/200, Pixel Loss: 0.19627170264720917, Generator Loss: 15.74923038482666, Discriminator Loss: 0.26023033261299133
Epoch 140/200, Pixel Loss: 0.21617275476455688, Generator Loss: 16.36776351928711, Discriminator Loss: 0.14504322409629822
Epoch 141/200, Pixel Loss: 0.1858144849538803, Generator Loss: 13.68055248260498, Discriminator Loss: 0.14223188161849976
Epoch 142/200, Pixel Loss: 0.16449734568595886, Generator Loss: 14.082731246948242, Discriminator Loss: 0.06090918928384781
Epoch 143/200, Pixel Loss: 0.17994382977485657, Generator Loss: 16.17618179321289, Discriminator Loss: 0.07093454152345657
Epoch 144/200, Pixel Loss: 0.1799887865781784, Generator Loss: 14.663844108581543, Discriminator Loss: 0.09289762377738953
Epoch 145/200, Pixel Loss: 0.18392729759216309, Generator Loss: 14.582292556762695, Discriminator Loss: 0.16633914411067963
Epoch 146/200, Pixel Loss: 0.1991572082042694, Generator Loss: 15.252350807189941, Discriminator Loss: 0.1419578641653061
Epoch 147/200, Pixel Loss: 0.17084023356437683, Generator Loss: 14.104360580444336, Discriminator Loss: 0.07694285362958908
Epoch 148/200, Pixel Loss: 0.19505085051059723, Generator Loss: 15.067079544067383, Discriminator Loss: 0.16916155815124512
Epoch 149/200, Pixel Loss: 0.18456178903579712, Generator Loss: 13.9661226272583, Discriminator Loss: 0.1597399115562439
Epoch 150/200, Pixel Loss: 0.1919204294681549, Generator Loss: 14.15984058380127, Discriminator Loss: 0.13923782110214233
Epoch 151/200, Pixel Loss: 0.1921243667602539, Generator Loss: 15.298046112060547, Discriminator Loss: 0.11089280247688293
Epoch 152/200, Pixel Loss: 0.18961812555789948, Generator Loss: 15.882105827331543, Discriminator Loss: 0.07084571570158005
Epoch 153/200, Pixel Loss: 0.18661890923976898, Generator Loss: 16.80427360534668, Discriminator Loss: 0.7573320269584656
Epoch 154/200, Pixel Loss: 0.22446292638778687, Generator Loss: 17.2895565032959, Discriminator Loss: 0.09958267211914062
Epoch 155/200, Pixel Loss: 0.17027446627616882, Generator Loss: 14.28364372253418, Discriminator Loss: 0.09803225100040436
Epoch 156/200, Pixel Loss: 0.1708657443523407, Generator Loss: 15.423351287841797, Discriminator Loss: 0.08516083657741547
Epoch 157/200, Pixel Loss: 0.19361354410648346, Generator Loss: 15.466398239135742, Discriminator Loss: 0.11011757701635361
Epoch 158/200, Pixel Loss: 0.1921243667602539, Generator Loss: 15.714143753051758, Discriminator Loss: 0.11368358880281448
Epoch 159/200, Pixel Loss: 0.18384014070034027, Generator Loss: 15.125534057617188, Discriminator Loss: 0.09222066402435303
Epoch 160/200, Pixel Loss: 0.19794417917728424, Generator Loss: 15.539459228515625, Discriminator Loss: 0.06760525703430176
Epoch 161/200, Pixel Loss: 0.17996113002300262, Generator Loss: 15.156673431396484, Discriminator Loss: 0.08763338625431061
Epoch 162/200, Pixel Loss: 0.2045215368270874, Generator Loss: 15.349853515625, Discriminator Loss: 0.14556631445884705
Epoch 163/200, Pixel Loss: 0.1758827567100525, Generator Loss: 15.263423919677734, Discriminator Loss: 0.10666438937187195
Epoch 164/200, Pixel Loss: 0.16977016627788544, Generator Loss: 13.919187545776367, Discriminator Loss: 0.16477692127227783
Epoch 165/200, Pixel Loss: 0.17112980782985687, Generator Loss: 15.417177200317383, Discriminator Loss: 0.06484152376651764
Epoch 166/200, Pixel Loss: 0.19220511615276337, Generator Loss: 14.549093246459961, Discriminator Loss: 0.0775708258152008
Epoch 167/200, Pixel Loss: 0.16055381298065186, Generator Loss: 14.916407585144043, Discriminator Loss: 0.05271044373512268
Epoch 168/200, Pixel Loss: 0.2060530185699463, Generator Loss: 17.495235443115234, Discriminator Loss: 0.10490777343511581
Epoch 169/200, Pixel Loss: 0.19365647435188293, Generator Loss: 17.29241180419922, Discriminator Loss: 0.18488110601902008
Epoch 170/200, Pixel Loss: 0.16261141002178192, Generator Loss: 13.826139450073242, Discriminator Loss: 0.08259628713130951
Epoch 171/200, Pixel Loss: 0.171391099691391, Generator Loss: 14.738153457641602, Discriminator Loss: 0.043965134769678116
Epoch 172/200, Pixel Loss: 0.210211381316185, Generator Loss: 15.828607559204102, Discriminator Loss: 0.16800087690353394
Epoch 173/200, Pixel Loss: 0.1714550405740738, Generator Loss: 16.302125930786133, Discriminator Loss: 0.07599233090877533
Epoch 174/200, Pixel Loss: 0.1596630960702896, Generator Loss: 13.898432731628418, Discriminator Loss: 0.08897125720977783
Epoch 175/200, Pixel Loss: 0.1977158486843109, Generator Loss: 15.333015441894531, Discriminator Loss: 0.09703672677278519
Epoch 176/200, Pixel Loss: 0.1816810965538025, Generator Loss: 14.892333984375, Discriminator Loss: 0.11894577741622925
Epoch 177/200, Pixel Loss: 0.18395976722240448, Generator Loss: 15.485421180725098, Discriminator Loss: 0.15064290165901184
Epoch 178/200, Pixel Loss: 0.1463756561279297, Generator Loss: 13.625365257263184, Discriminator Loss: 0.06837792694568634
Epoch 179/200, Pixel Loss: 0.19800925254821777, Generator Loss: 17.059608459472656, Discriminator Loss: 0.15230877697467804
Epoch 180/200, Pixel Loss: 0.19461394846439362, Generator Loss: 15.21977710723877, Discriminator Loss: 0.11230970919132233
Epoch 181/200, Pixel Loss: 0.1988893449306488, Generator Loss: 17.524246215820312, Discriminator Loss: 0.12110501527786255
Epoch 182/200, Pixel Loss: 0.16497942805290222, Generator Loss: 14.392841339111328, Discriminator Loss: 0.07364828884601593
Epoch 183/200, Pixel Loss: 0.18700702488422394, Generator Loss: 14.951004028320312, Discriminator Loss: 0.0868578851222992
Epoch 184/200, Pixel Loss: 0.17135292291641235, Generator Loss: 15.112149238586426, Discriminator Loss: 0.04340595752000809
Epoch 185/200, Pixel Loss: 0.20046456158161163, Generator Loss: 16.049320220947266, Discriminator Loss: 0.08798983693122864
Epoch 186/200, Pixel Loss: 0.1799478679895401, Generator Loss: 15.13730525970459, Discriminator Loss: 0.10108165442943573
Epoch 187/200, Pixel Loss: 0.16070827841758728, Generator Loss: 15.433231353759766, Discriminator Loss: 0.040085356682538986
Epoch 188/200, Pixel Loss: 0.2120637595653534, Generator Loss: 16.32893943786621, Discriminator Loss: 0.07445918768644333
Epoch 189/200, Pixel Loss: 0.1912928968667984, Generator Loss: 15.304372787475586, Discriminator Loss: 0.13038219511508942
Epoch 190/200, Pixel Loss: 0.16172905266284943, Generator Loss: 15.83034610748291, Discriminator Loss: 0.05860564857721329
Epoch 191/200, Pixel Loss: 0.1894548535346985, Generator Loss: 15.096712112426758, Discriminator Loss: 0.09603703022003174
Epoch 192/200, Pixel Loss: 0.17647449672222137, Generator Loss: 14.13150405883789, Discriminator Loss: 0.07471001893281937
Epoch 193/200, Pixel Loss: 0.20781309902668, Generator Loss: 16.855195999145508, Discriminator Loss: 0.06689904630184174
Epoch 194/200, Pixel Loss: 0.18248191475868225, Generator Loss: 15.315498352050781, Discriminator Loss: 0.12827931344509125
Epoch 195/200, Pixel Loss: 0.1701478213071823, Generator Loss: 14.527774810791016, Discriminator Loss: 0.09307517856359482
Epoch 196/200, Pixel Loss: 0.16357003152370453, Generator Loss: 14.466272354125977, Discriminator Loss: 0.09876611828804016
Epoch 197/200, Pixel Loss: 0.21640290319919586, Generator Loss: 17.5809383392334, Discriminator Loss: 0.19013920426368713
Epoch 198/200, Pixel Loss: 0.176817387342453, Generator Loss: 15.98762035369873, Discriminator Loss: 0.10216650366783142
Epoch 199/200, Pixel Loss: 0.18614302575588226, Generator Loss: 16.190277099609375, Discriminator Loss: 0.05436865985393524
Epoch 200/200, Pixel Loss: 0.19424322247505188, Generator Loss: 16.6041259765625, Discriminator Loss: 0.09916779398918152
In [ ]:
def evaluate(test_loader):
    generator.eval()
    discriminator.eval()
    
    total_g_loss = 0.0
    total_d_loss = 0.0
    total_pixel_loss = 0.0
    
    with torch.no_grad():
        for i, data in enumerate(test_loader):
            real = torch.ones(data['II'].shape[0], 1, 98).to(device)  # 진짜(real): 1
            fake = torch.zeros(data['II'].shape[0], 1, 98).to(device) # 가짜(fake): 0

            denoised_signal = data['II'].unsqueeze(1).float().to(device)      # (batch, 1600) -> (batch, 1, 1600)
            noised_signal = data['II-Raw'].unsqueeze(1).float().to(device)    # (batch, 1600) -> (batch, 1, 1600)

            # 생성자 평가
            generated_signal = generator(noised_signal)
            pred_fake = discriminator(generated_signal, noised_signal)
            loss_GAN = criterion_GAN(pred_fake, real)
            loss_pixel = criterion_pixelwise(generated_signal, denoised_signal)
            loss_G = loss_GAN + beta*loss_pixel
            
            total_g_loss += loss_G.item()
            total_pixel_loss += loss_pixel.item()

            # 판별자 평가
            pred_real = discriminator(denoised_signal, noised_signal)
            loss_real = criterion_GAN(pred_real, real)

            pred_fake = discriminator(generated_signal, noised_signal)
            loss_fake = criterion_GAN(pred_fake, fake)

            loss_D = 0.5 * (loss_real + loss_fake)
            total_d_loss += loss_D.item()

    avg_g_loss = total_g_loss / len(test_loader)
    avg_d_loss = total_d_loss / len(test_loader)
    avg_pixel_loss = total_pixel_loss / len(test_loader)

    print(f'Test set evaluation - Pixel Loss: {avg_pixel_loss:.5f}, Generator Loss: {avg_g_loss:.5f}, Discriminator Loss: {avg_d_loss:.5f}')
    
# 테스트 셋 평가
evaluate(test_loader)
Test set evaluation - Pixel Loss: 0.16143, Generator Loss: 10.04604, Discriminator Loss: 0.56814
In [ ]:
def plot_signals(real_signals, noise_signals, generated_signals, num_examples=10):
    for i in range(num_examples):
        plt.figure(figsize=(30, 4))
        plt.subplot(1, 2, 1)
        plt.plot(real_signals[i], label='Real Signal')
        plt.plot(generated_signals[i], label='Generated Signal')
        plt.legend()
        plt.title(f'Signal {i+1}')

        plt.subplot(1, 2, 2)
        plt.plot(noise_signals[i], label='Noise Signal')
        plt.plot(generated_signals[i], label='Generated Signal')
        plt.legend()
        plt.title(f'Signal {i+1}')
    plt.tight_layout()
    plt.show()

def visualize_test_results(data_loader):
    generator.eval()  # 생성기를 평가 모드로 설정
    real_data_samples = []
    noise_data_samples = []
    generated_data_samples = []
    
    with torch.no_grad():
        for data in data_loader:
            real_signal = data['II'].unsqueeze(1).float().to(device)
            noise_signal = data['II-Raw'].unsqueeze(1).float().to(device)

            generated_signal = generator(noise_signal).cpu().numpy()
            noise_signal = noise_signal.cpu().numpy()
            real_signal = real_signal.cpu().numpy()

            real_data_samples.append(real_signal)
            noise_data_samples.append(noise_signal)
            generated_data_samples.append(generated_signal)
            
            if len(real_data_samples) >= 5:
                break

    # 리스트에서 numpy 배열로 변환
    real_data_samples = np.array(real_data_samples).reshape(-1, 1600)
    noise_data_samples = np.array(noise_data_samples).reshape(-1, 1600)
    generated_data_samples = np.array(generated_data_samples).reshape(-1, 1600)
    
    plot_signals(real_data_samples, noise_data_samples, generated_data_samples)

# 시각화 실행
visualize_test_results(test_loader)
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Gaussian Noise¶

alpha = 0.1

In [ ]:
class GN_ECGDataset(Dataset):
    def __init__(self, directory, alpha):
        self.data = []
        segment_length = 1600  # 2초 길이의 샘플 수

        # 모든 환자 디렉터리 반복
        for patient_num in range(1, 93):
            patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
            seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
            
            for seg_file in seg_files:
                data_file = os.path.join(patient_dir, seg_file)
                header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
                
                num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
                ii_index = channel_names.index('II')
                
                ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
                
                # 각 세그먼트를 2초씩 잘라서 저장
                num_segments = 5
                for i in range(num_segments):
                    start = i * segment_length
                    end = start + segment_length
                    segment_data = {
                        "II": ecg_data[ii_index][start:end]
                    }

                    # II 채널 표준화
                    segment_data["II"] = (segment_data["II"] - np.mean(segment_data["II"])) / np.std(segment_data["II"])

                    # Gaussian noise 추가하여 II-Raw 생성
                    noise = np.random.normal(0, 1, segment_length)
                    segment_data["II-Raw"] = segment_data["II"] + alpha*noise

                    self.data.append(segment_data)

    def parse_header(self, file_path):
        with open(file_path, 'r', encoding='latin1') as file:
            lines = file.readlines()
        num_channels = int(lines[0].split(' ')[1])
        samples_per_channel = int(lines[0].split(' ')[3])
        channel_names = []
        for line in lines[1:num_channels+1]:
            channel_info = line.split(' ')
            channel_names.append(channel_info[-1].strip())
        return num_channels, samples_per_channel, channel_names

    def load_ecg_data(self, num_channels, samples_per_channel, data_file):
        ecg_data = np.fromfile(data_file, dtype='int16')
        ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
        return ecg_data

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        sample = self.data[idx]
        return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}

# 데이터셋과 데이터 로더 설정
GN_01_ecg_dataset = GN_ECGDataset(dataset_directory, 0.1)

# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(GN_01_ecg_dataset, [train_size, test_size], generator=seed)

GN_01_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
GN_01_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)

optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)

# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(GN_01_train_loader)
Epoch 1/200, Pixel Loss: 0.4184998869895935, Generator Loss: 25.69228172302246, Discriminator Loss: 0.21559280157089233
Epoch 2/200, Pixel Loss: 0.271245539188385, Generator Loss: 21.338577270507812, Discriminator Loss: 0.2794591784477234
Epoch 3/200, Pixel Loss: 0.17226248979568481, Generator Loss: 17.08191680908203, Discriminator Loss: 0.14645148813724518
Epoch 4/200, Pixel Loss: 0.11763772368431091, Generator Loss: 12.427919387817383, Discriminator Loss: 0.19779060781002045
Epoch 5/200, Pixel Loss: 0.11226879060268402, Generator Loss: 11.41683578491211, Discriminator Loss: 0.21942995488643646
Epoch 6/200, Pixel Loss: 0.10470578819513321, Generator Loss: 9.634283065795898, Discriminator Loss: 0.34705275297164917
Epoch 7/200, Pixel Loss: 0.11845527589321136, Generator Loss: 11.087774276733398, Discriminator Loss: 0.2481427788734436
Epoch 8/200, Pixel Loss: 0.10490264743566513, Generator Loss: 9.584970474243164, Discriminator Loss: 0.3141552209854126
Epoch 9/200, Pixel Loss: 0.10081551969051361, Generator Loss: 9.682400703430176, Discriminator Loss: 0.29322701692581177
Epoch 10/200, Pixel Loss: 0.08945748955011368, Generator Loss: 8.281938552856445, Discriminator Loss: 0.3659559488296509
Epoch 11/200, Pixel Loss: 0.1032477617263794, Generator Loss: 10.27543830871582, Discriminator Loss: 0.36308979988098145
Epoch 12/200, Pixel Loss: 0.10487796366214752, Generator Loss: 10.382627487182617, Discriminator Loss: 0.3585377335548401
Epoch 13/200, Pixel Loss: 0.0786774680018425, Generator Loss: 6.778791427612305, Discriminator Loss: 0.4792001247406006
Epoch 14/200, Pixel Loss: 0.09181417524814606, Generator Loss: 8.183713912963867, Discriminator Loss: 0.4354533553123474
Epoch 15/200, Pixel Loss: 0.08541152626276016, Generator Loss: 7.616520881652832, Discriminator Loss: 0.39043253660202026
Epoch 16/200, Pixel Loss: 0.10350678861141205, Generator Loss: 9.984387397766113, Discriminator Loss: 0.33280348777770996
Epoch 17/200, Pixel Loss: 0.0834716334939003, Generator Loss: 7.575829982757568, Discriminator Loss: 0.42767226696014404
Epoch 18/200, Pixel Loss: 0.07738607376813889, Generator Loss: 7.278137683868408, Discriminator Loss: 0.44613319635391235
Epoch 19/200, Pixel Loss: 0.08221839368343353, Generator Loss: 8.09178352355957, Discriminator Loss: 0.46317264437675476
Epoch 20/200, Pixel Loss: 0.07878106832504272, Generator Loss: 8.089790344238281, Discriminator Loss: 0.4195714294910431
Epoch 21/200, Pixel Loss: 0.07195671647787094, Generator Loss: 7.759809494018555, Discriminator Loss: 0.4682617783546448
Epoch 22/200, Pixel Loss: 0.07728719711303711, Generator Loss: 9.280576705932617, Discriminator Loss: 0.4002962112426758
Epoch 23/200, Pixel Loss: 0.0925472304224968, Generator Loss: 10.385173797607422, Discriminator Loss: 0.33332937955856323
Epoch 24/200, Pixel Loss: 0.07314921915531158, Generator Loss: 8.042596817016602, Discriminator Loss: 0.43175411224365234
Epoch 25/200, Pixel Loss: 0.07589422166347504, Generator Loss: 8.877992630004883, Discriminator Loss: 0.3856237828731537
Epoch 26/200, Pixel Loss: 0.07034038752317429, Generator Loss: 9.156564712524414, Discriminator Loss: 0.44431260228157043
Epoch 27/200, Pixel Loss: 0.07560744136571884, Generator Loss: 9.222306251525879, Discriminator Loss: 0.39197254180908203
Epoch 28/200, Pixel Loss: 0.07859806716442108, Generator Loss: 10.227484703063965, Discriminator Loss: 0.3431234061717987
Epoch 29/200, Pixel Loss: 0.08708307892084122, Generator Loss: 10.319602012634277, Discriminator Loss: 0.4159805178642273
Epoch 30/200, Pixel Loss: 0.08191967010498047, Generator Loss: 9.950231552124023, Discriminator Loss: 0.38651221990585327
Epoch 31/200, Pixel Loss: 0.08016153424978256, Generator Loss: 10.06618595123291, Discriminator Loss: 0.4979569911956787
Epoch 32/200, Pixel Loss: 0.07916266471147537, Generator Loss: 10.29487133026123, Discriminator Loss: 0.3773695230484009
Epoch 33/200, Pixel Loss: 0.08709319680929184, Generator Loss: 10.198423385620117, Discriminator Loss: 0.39438140392303467
Epoch 34/200, Pixel Loss: 0.07679019868373871, Generator Loss: 9.956018447875977, Discriminator Loss: 0.42527997493743896
Epoch 35/200, Pixel Loss: 0.08130794018507004, Generator Loss: 9.49355697631836, Discriminator Loss: 0.4589498043060303
Epoch 36/200, Pixel Loss: 0.08456040173768997, Generator Loss: 10.376081466674805, Discriminator Loss: 0.36534905433654785
Epoch 37/200, Pixel Loss: 0.08668447285890579, Generator Loss: 10.127117156982422, Discriminator Loss: 0.348226934671402
Epoch 38/200, Pixel Loss: 0.076898492872715, Generator Loss: 10.483745574951172, Discriminator Loss: 0.3078804612159729
Epoch 39/200, Pixel Loss: 0.07857763767242432, Generator Loss: 10.426793098449707, Discriminator Loss: 0.335863322019577
Epoch 40/200, Pixel Loss: 0.08268717676401138, Generator Loss: 10.41537857055664, Discriminator Loss: 0.3518384099006653
Epoch 41/200, Pixel Loss: 0.07563319057226181, Generator Loss: 10.208086013793945, Discriminator Loss: 0.36137738823890686
Epoch 42/200, Pixel Loss: 0.07518912851810455, Generator Loss: 9.968356132507324, Discriminator Loss: 0.33566173911094666
Epoch 43/200, Pixel Loss: 0.07803209871053696, Generator Loss: 9.579099655151367, Discriminator Loss: 0.603115975856781
Epoch 44/200, Pixel Loss: 0.08000081777572632, Generator Loss: 11.521132469177246, Discriminator Loss: 0.30407610535621643
Epoch 45/200, Pixel Loss: 0.0781073197722435, Generator Loss: 10.745780944824219, Discriminator Loss: 0.3075069189071655
Epoch 46/200, Pixel Loss: 0.08040118962526321, Generator Loss: 10.113402366638184, Discriminator Loss: 0.410767138004303
Epoch 47/200, Pixel Loss: 0.08356326818466187, Generator Loss: 11.323410034179688, Discriminator Loss: 0.29414236545562744
Epoch 48/200, Pixel Loss: 0.0740850642323494, Generator Loss: 10.94498062133789, Discriminator Loss: 0.437002956867218
Epoch 49/200, Pixel Loss: 0.07480678707361221, Generator Loss: 10.069658279418945, Discriminator Loss: 0.3858710825443268
Epoch 50/200, Pixel Loss: 0.07669439166784286, Generator Loss: 11.110727310180664, Discriminator Loss: 0.313664972782135
Epoch 51/200, Pixel Loss: 0.07973227649927139, Generator Loss: 11.307788848876953, Discriminator Loss: 0.31388646364212036
Epoch 52/200, Pixel Loss: 0.08375995606184006, Generator Loss: 11.562135696411133, Discriminator Loss: 0.30228644609451294
Epoch 53/200, Pixel Loss: 0.07887835055589676, Generator Loss: 11.58132266998291, Discriminator Loss: 0.3850110173225403
Epoch 54/200, Pixel Loss: 0.07662755995988846, Generator Loss: 11.690393447875977, Discriminator Loss: 0.3700484037399292
Epoch 55/200, Pixel Loss: 0.0899580717086792, Generator Loss: 12.640044212341309, Discriminator Loss: 0.30388110876083374
Epoch 56/200, Pixel Loss: 0.07837066799402237, Generator Loss: 11.384727478027344, Discriminator Loss: 0.3893861174583435
Epoch 57/200, Pixel Loss: 0.07988277077674866, Generator Loss: 11.477789878845215, Discriminator Loss: 0.33255934715270996
Epoch 58/200, Pixel Loss: 0.07666272670030594, Generator Loss: 10.377997398376465, Discriminator Loss: 0.3486837148666382
Epoch 59/200, Pixel Loss: 0.08754035830497742, Generator Loss: 12.55040168762207, Discriminator Loss: 0.39259856939315796
Epoch 60/200, Pixel Loss: 0.0834217518568039, Generator Loss: 11.00522518157959, Discriminator Loss: 0.3259613513946533
Epoch 61/200, Pixel Loss: 0.07483898103237152, Generator Loss: 10.912763595581055, Discriminator Loss: 0.41046851873397827
Epoch 62/200, Pixel Loss: 0.09111489355564117, Generator Loss: 12.548721313476562, Discriminator Loss: 0.27471548318862915
Epoch 63/200, Pixel Loss: 0.07421877980232239, Generator Loss: 9.547869682312012, Discriminator Loss: 0.40572458505630493
Epoch 64/200, Pixel Loss: 0.07737992703914642, Generator Loss: 10.533610343933105, Discriminator Loss: 0.35126084089279175
Epoch 65/200, Pixel Loss: 0.07741019129753113, Generator Loss: 10.063926696777344, Discriminator Loss: 0.4174130856990814
Epoch 66/200, Pixel Loss: 0.073345847427845, Generator Loss: 10.348877906799316, Discriminator Loss: 0.47331318259239197
Epoch 67/200, Pixel Loss: 0.07222584635019302, Generator Loss: 9.892899513244629, Discriminator Loss: 0.3837113380432129
Epoch 68/200, Pixel Loss: 0.07690935581922531, Generator Loss: 11.109013557434082, Discriminator Loss: 0.3080834746360779
Epoch 69/200, Pixel Loss: 0.07082296907901764, Generator Loss: 10.21562385559082, Discriminator Loss: 0.42394450306892395
Epoch 70/200, Pixel Loss: 0.0790630578994751, Generator Loss: 10.848240852355957, Discriminator Loss: 0.3783823847770691
Epoch 71/200, Pixel Loss: 0.08256639540195465, Generator Loss: 10.289121627807617, Discriminator Loss: 0.4542965292930603
Epoch 72/200, Pixel Loss: 0.07892439514398575, Generator Loss: 10.458006858825684, Discriminator Loss: 0.3957909941673279
Epoch 73/200, Pixel Loss: 0.06782352924346924, Generator Loss: 9.042973518371582, Discriminator Loss: 0.4072907865047455
Epoch 74/200, Pixel Loss: 0.08421684056520462, Generator Loss: 11.460325241088867, Discriminator Loss: 0.35418832302093506
Epoch 75/200, Pixel Loss: 0.08378647267818451, Generator Loss: 11.433167457580566, Discriminator Loss: 0.3426608145236969
Epoch 76/200, Pixel Loss: 0.07545682042837143, Generator Loss: 10.179059982299805, Discriminator Loss: 0.40421342849731445
Epoch 77/200, Pixel Loss: 0.07236950099468231, Generator Loss: 10.10997486114502, Discriminator Loss: 0.4566371440887451
Epoch 78/200, Pixel Loss: 0.07968783378601074, Generator Loss: 9.583984375, Discriminator Loss: 0.4251393675804138
Epoch 79/200, Pixel Loss: 0.07635709643363953, Generator Loss: 10.464543342590332, Discriminator Loss: 0.36926764249801636
Epoch 80/200, Pixel Loss: 0.07379067689180374, Generator Loss: 10.337949752807617, Discriminator Loss: 0.42828619480133057
Epoch 81/200, Pixel Loss: 0.07390247285366058, Generator Loss: 10.27394962310791, Discriminator Loss: 0.413784384727478
Epoch 82/200, Pixel Loss: 0.07977630198001862, Generator Loss: 9.819509506225586, Discriminator Loss: 0.47744184732437134
Epoch 83/200, Pixel Loss: 0.07451630383729935, Generator Loss: 9.999919891357422, Discriminator Loss: 0.3642386794090271
Epoch 84/200, Pixel Loss: 0.07991263270378113, Generator Loss: 9.997385025024414, Discriminator Loss: 0.38817471265792847
Epoch 85/200, Pixel Loss: 0.07379047572612762, Generator Loss: 9.4929780960083, Discriminator Loss: 0.4350220561027527
Epoch 86/200, Pixel Loss: 0.07605037838220596, Generator Loss: 10.268665313720703, Discriminator Loss: 0.4235551953315735
Epoch 87/200, Pixel Loss: 0.0790846198797226, Generator Loss: 11.02523136138916, Discriminator Loss: 0.45749643445014954
Epoch 88/200, Pixel Loss: 0.07454004883766174, Generator Loss: 10.157817840576172, Discriminator Loss: 0.4359890818595886
Epoch 89/200, Pixel Loss: 0.07278721779584885, Generator Loss: 8.75296401977539, Discriminator Loss: 0.5222545266151428
Epoch 90/200, Pixel Loss: 0.07401733845472336, Generator Loss: 9.611679077148438, Discriminator Loss: 0.397882342338562
Epoch 91/200, Pixel Loss: 0.06676500290632248, Generator Loss: 9.081811904907227, Discriminator Loss: 0.457277774810791
Epoch 92/200, Pixel Loss: 0.07399784028530121, Generator Loss: 10.450227737426758, Discriminator Loss: 0.44753509759902954
Epoch 93/200, Pixel Loss: 0.07100512087345123, Generator Loss: 8.62309741973877, Discriminator Loss: 0.4354977607727051
Epoch 94/200, Pixel Loss: 0.07425439357757568, Generator Loss: 9.0634765625, Discriminator Loss: 0.37512117624282837
Epoch 95/200, Pixel Loss: 0.07426264882087708, Generator Loss: 10.421524047851562, Discriminator Loss: 0.39025503396987915
Epoch 96/200, Pixel Loss: 0.0746915340423584, Generator Loss: 8.723773956298828, Discriminator Loss: 0.4488503038883209
Epoch 97/200, Pixel Loss: 0.07480720430612564, Generator Loss: 10.012187957763672, Discriminator Loss: 0.4087194502353668
Epoch 98/200, Pixel Loss: 0.07531975209712982, Generator Loss: 10.795344352722168, Discriminator Loss: 0.4297596216201782
Epoch 99/200, Pixel Loss: 0.08210912346839905, Generator Loss: 10.663909912109375, Discriminator Loss: 0.40441572666168213
Epoch 100/200, Pixel Loss: 0.07171601057052612, Generator Loss: 9.903841018676758, Discriminator Loss: 0.42071032524108887
Epoch 101/200, Pixel Loss: 0.0754690170288086, Generator Loss: 11.28670883178711, Discriminator Loss: 0.34166520833969116
Epoch 102/200, Pixel Loss: 0.0786106064915657, Generator Loss: 10.536884307861328, Discriminator Loss: 0.4066893458366394
Epoch 103/200, Pixel Loss: 0.07918787747621536, Generator Loss: 11.206214904785156, Discriminator Loss: 0.4331391453742981
Epoch 104/200, Pixel Loss: 0.07458395510911942, Generator Loss: 10.409225463867188, Discriminator Loss: 0.32940804958343506
Epoch 105/200, Pixel Loss: 0.07306066155433655, Generator Loss: 9.293447494506836, Discriminator Loss: 0.44826847314834595
Epoch 106/200, Pixel Loss: 0.07340458780527115, Generator Loss: 10.666257858276367, Discriminator Loss: 0.4157102108001709
Epoch 107/200, Pixel Loss: 0.07202602922916412, Generator Loss: 9.645090103149414, Discriminator Loss: 0.44102537631988525
Epoch 108/200, Pixel Loss: 0.07619772106409073, Generator Loss: 10.397980690002441, Discriminator Loss: 0.40923720598220825
Epoch 109/200, Pixel Loss: 0.07395799458026886, Generator Loss: 10.669604301452637, Discriminator Loss: 0.38767099380493164
Epoch 110/200, Pixel Loss: 0.07339252531528473, Generator Loss: 9.700651168823242, Discriminator Loss: 0.39075779914855957
Epoch 111/200, Pixel Loss: 0.07331497967243195, Generator Loss: 10.805309295654297, Discriminator Loss: 0.41619840264320374
Epoch 112/200, Pixel Loss: 0.07018022239208221, Generator Loss: 10.571357727050781, Discriminator Loss: 0.3870046138763428
Epoch 113/200, Pixel Loss: 0.07781597226858139, Generator Loss: 11.334789276123047, Discriminator Loss: 0.3773345351219177
Epoch 114/200, Pixel Loss: 0.07341975718736649, Generator Loss: 10.32734203338623, Discriminator Loss: 0.41985011100769043
Epoch 115/200, Pixel Loss: 0.07113942503929138, Generator Loss: 10.98820686340332, Discriminator Loss: 0.4488205909729004
Epoch 116/200, Pixel Loss: 0.07317546755075455, Generator Loss: 10.27645492553711, Discriminator Loss: 0.3526204228401184
Epoch 117/200, Pixel Loss: 0.06982489675283432, Generator Loss: 9.726598739624023, Discriminator Loss: 0.4735124707221985
Epoch 118/200, Pixel Loss: 0.07162979245185852, Generator Loss: 11.087699890136719, Discriminator Loss: 0.3985099196434021
Epoch 119/200, Pixel Loss: 0.07325578480958939, Generator Loss: 10.841227531433105, Discriminator Loss: 0.41592714190483093
Epoch 120/200, Pixel Loss: 0.07243306934833527, Generator Loss: 10.375917434692383, Discriminator Loss: 0.45878440141677856
Epoch 121/200, Pixel Loss: 0.07033780962228775, Generator Loss: 11.061716079711914, Discriminator Loss: 0.3686017394065857
Epoch 122/200, Pixel Loss: 0.06980488449335098, Generator Loss: 10.138176918029785, Discriminator Loss: 0.43010932207107544
Epoch 123/200, Pixel Loss: 0.06729815155267715, Generator Loss: 10.164909362792969, Discriminator Loss: 0.38133710622787476
Epoch 124/200, Pixel Loss: 0.07280465215444565, Generator Loss: 11.138174057006836, Discriminator Loss: 0.45524027943611145
Epoch 125/200, Pixel Loss: 0.08014051616191864, Generator Loss: 12.103471755981445, Discriminator Loss: 0.4306466579437256
Epoch 126/200, Pixel Loss: 0.06934918463230133, Generator Loss: 10.786994934082031, Discriminator Loss: 0.3910388946533203
Epoch 127/200, Pixel Loss: 0.07020687311887741, Generator Loss: 9.900237083435059, Discriminator Loss: 0.43310415744781494
Epoch 128/200, Pixel Loss: 0.06635638326406479, Generator Loss: 10.687236785888672, Discriminator Loss: 0.39939945936203003
Epoch 129/200, Pixel Loss: 0.07642025500535965, Generator Loss: 11.655075073242188, Discriminator Loss: 0.3556537628173828
Epoch 130/200, Pixel Loss: 0.07239175587892532, Generator Loss: 11.753419876098633, Discriminator Loss: 0.37248748540878296
Epoch 131/200, Pixel Loss: 0.06687024980783463, Generator Loss: 10.952964782714844, Discriminator Loss: 0.40329253673553467
Epoch 132/200, Pixel Loss: 0.07438945770263672, Generator Loss: 12.948779106140137, Discriminator Loss: 0.42802706360816956
Epoch 133/200, Pixel Loss: 0.08273017406463623, Generator Loss: 12.848530769348145, Discriminator Loss: 0.32640403509140015
Epoch 134/200, Pixel Loss: 0.07240428775548935, Generator Loss: 12.048925399780273, Discriminator Loss: 0.3874819278717041
Epoch 135/200, Pixel Loss: 0.06765197962522507, Generator Loss: 11.330146789550781, Discriminator Loss: 0.38346341252326965
Epoch 136/200, Pixel Loss: 0.0710313692688942, Generator Loss: 12.141180038452148, Discriminator Loss: 0.3890835642814636
Epoch 137/200, Pixel Loss: 0.06835819780826569, Generator Loss: 10.901666641235352, Discriminator Loss: 0.4397616386413574
Epoch 138/200, Pixel Loss: 0.07365106791257858, Generator Loss: 12.121271133422852, Discriminator Loss: 0.3159547448158264
Epoch 139/200, Pixel Loss: 0.07335955649614334, Generator Loss: 13.251585006713867, Discriminator Loss: 0.3338296413421631
Epoch 140/200, Pixel Loss: 0.07679290324449539, Generator Loss: 12.757024765014648, Discriminator Loss: 0.34379854798316956
Epoch 141/200, Pixel Loss: 0.07207922637462616, Generator Loss: 11.31602954864502, Discriminator Loss: 0.39312517642974854
Epoch 142/200, Pixel Loss: 0.07186483591794968, Generator Loss: 11.786023139953613, Discriminator Loss: 0.3306505084037781
Epoch 143/200, Pixel Loss: 0.0692986249923706, Generator Loss: 11.29709243774414, Discriminator Loss: 0.34824275970458984
Epoch 144/200, Pixel Loss: 0.07017999142408371, Generator Loss: 10.529098510742188, Discriminator Loss: 0.35560330748558044
Epoch 145/200, Pixel Loss: 0.07378862798213959, Generator Loss: 13.081103324890137, Discriminator Loss: 0.3728880286216736
Epoch 146/200, Pixel Loss: 0.07915686070919037, Generator Loss: 13.626770973205566, Discriminator Loss: 0.4725266695022583
Epoch 147/200, Pixel Loss: 0.0727744847536087, Generator Loss: 13.34221076965332, Discriminator Loss: 0.24969622492790222
Epoch 148/200, Pixel Loss: 0.0743398666381836, Generator Loss: 12.133919715881348, Discriminator Loss: 0.2983874976634979
Epoch 149/200, Pixel Loss: 0.06797587126493454, Generator Loss: 11.27922534942627, Discriminator Loss: 0.4617072641849518
Epoch 150/200, Pixel Loss: 0.06900521367788315, Generator Loss: 11.637077331542969, Discriminator Loss: 0.4962475299835205
Epoch 151/200, Pixel Loss: 0.07427384704351425, Generator Loss: 11.221675872802734, Discriminator Loss: 0.5478182435035706
Epoch 152/200, Pixel Loss: 0.07334659993648529, Generator Loss: 12.164664268493652, Discriminator Loss: 0.44546574354171753
Epoch 153/200, Pixel Loss: 0.070597805082798, Generator Loss: 11.343533515930176, Discriminator Loss: 0.373363196849823
Epoch 154/200, Pixel Loss: 0.07232777029275894, Generator Loss: 12.565715789794922, Discriminator Loss: 0.41737622022628784
Epoch 155/200, Pixel Loss: 0.06693931668996811, Generator Loss: 11.001699447631836, Discriminator Loss: 0.39062321186065674
Epoch 156/200, Pixel Loss: 0.07247672230005264, Generator Loss: 12.803970336914062, Discriminator Loss: 0.35681360960006714
Epoch 157/200, Pixel Loss: 0.07031980156898499, Generator Loss: 11.37632942199707, Discriminator Loss: 0.3395322561264038
Epoch 158/200, Pixel Loss: 0.0742606595158577, Generator Loss: 13.543112754821777, Discriminator Loss: 0.34596407413482666
Epoch 159/200, Pixel Loss: 0.0669415146112442, Generator Loss: 11.425042152404785, Discriminator Loss: 0.42261797189712524
Epoch 160/200, Pixel Loss: 0.07109703123569489, Generator Loss: 10.752099990844727, Discriminator Loss: 0.4215512275695801
Epoch 161/200, Pixel Loss: 0.06800178438425064, Generator Loss: 11.503111839294434, Discriminator Loss: 0.40968042612075806
Epoch 162/200, Pixel Loss: 0.07362042367458344, Generator Loss: 13.992115020751953, Discriminator Loss: 0.3399810194969177
Epoch 163/200, Pixel Loss: 0.07872272282838821, Generator Loss: 14.922356605529785, Discriminator Loss: 0.28596413135528564
Epoch 164/200, Pixel Loss: 0.07156749814748764, Generator Loss: 12.812362670898438, Discriminator Loss: 0.38652241230010986
Epoch 165/200, Pixel Loss: 0.07445907592773438, Generator Loss: 14.62690544128418, Discriminator Loss: 0.4255739450454712
Epoch 166/200, Pixel Loss: 0.06413184106349945, Generator Loss: 10.223104476928711, Discriminator Loss: 0.4411819577217102
Epoch 167/200, Pixel Loss: 0.07325006276369095, Generator Loss: 12.44081974029541, Discriminator Loss: 0.3963469862937927
Epoch 168/200, Pixel Loss: 0.0747247040271759, Generator Loss: 13.326045989990234, Discriminator Loss: 0.3162728548049927
Epoch 169/200, Pixel Loss: 0.06983499228954315, Generator Loss: 12.408539772033691, Discriminator Loss: 0.40163102746009827
Epoch 170/200, Pixel Loss: 0.06809868663549423, Generator Loss: 13.318248748779297, Discriminator Loss: 0.3851841390132904
Epoch 171/200, Pixel Loss: 0.07430834323167801, Generator Loss: 15.015480041503906, Discriminator Loss: 0.33556947112083435
Epoch 172/200, Pixel Loss: 0.0707189068198204, Generator Loss: 13.05313491821289, Discriminator Loss: 0.3784109354019165
Epoch 173/200, Pixel Loss: 0.07120926678180695, Generator Loss: 12.120952606201172, Discriminator Loss: 0.44838204979896545
Epoch 174/200, Pixel Loss: 0.07004567980766296, Generator Loss: 13.501513481140137, Discriminator Loss: 0.36154705286026
Epoch 175/200, Pixel Loss: 0.0720691978931427, Generator Loss: 13.49530029296875, Discriminator Loss: 0.3666502833366394
Epoch 176/200, Pixel Loss: 0.07273288071155548, Generator Loss: 13.019356727600098, Discriminator Loss: 0.3943173289299011
Epoch 177/200, Pixel Loss: 0.07939296215772629, Generator Loss: 13.190067291259766, Discriminator Loss: 0.3430406451225281
Epoch 178/200, Pixel Loss: 0.0599968321621418, Generator Loss: 10.340456008911133, Discriminator Loss: 0.3890334963798523
Epoch 179/200, Pixel Loss: 0.06686491519212723, Generator Loss: 11.402926445007324, Discriminator Loss: 0.4114881753921509
Epoch 180/200, Pixel Loss: 0.07580597698688507, Generator Loss: 13.826648712158203, Discriminator Loss: 0.30781763792037964
Epoch 181/200, Pixel Loss: 0.06931957602500916, Generator Loss: 13.351868629455566, Discriminator Loss: 0.39799487590789795
Epoch 182/200, Pixel Loss: 0.07036969065666199, Generator Loss: 12.495136260986328, Discriminator Loss: 0.4267856478691101
Epoch 183/200, Pixel Loss: 0.06917892396450043, Generator Loss: 12.662677764892578, Discriminator Loss: 0.37310880422592163
Epoch 184/200, Pixel Loss: 0.07265366613864899, Generator Loss: 14.119850158691406, Discriminator Loss: 0.4694482982158661
Epoch 185/200, Pixel Loss: 0.06806108355522156, Generator Loss: 11.51676082611084, Discriminator Loss: 0.33393362164497375
Epoch 186/200, Pixel Loss: 0.06459855288267136, Generator Loss: 10.780448913574219, Discriminator Loss: 0.32226845622062683
Epoch 187/200, Pixel Loss: 0.0784962922334671, Generator Loss: 16.24692153930664, Discriminator Loss: 0.3768414258956909
Epoch 188/200, Pixel Loss: 0.06822250038385391, Generator Loss: 12.237517356872559, Discriminator Loss: 0.3595539927482605
Epoch 189/200, Pixel Loss: 0.07423702627420425, Generator Loss: 13.41695785522461, Discriminator Loss: 0.49599388241767883
Epoch 190/200, Pixel Loss: 0.06786436587572098, Generator Loss: 13.517058372497559, Discriminator Loss: 0.40656888484954834
Epoch 191/200, Pixel Loss: 0.06604767590761185, Generator Loss: 10.887261390686035, Discriminator Loss: 0.3980110287666321
Epoch 192/200, Pixel Loss: 0.07197597622871399, Generator Loss: 13.423809051513672, Discriminator Loss: 0.4030422270298004
Epoch 193/200, Pixel Loss: 0.06900224834680557, Generator Loss: 11.955574989318848, Discriminator Loss: 0.4073267877101898
Epoch 194/200, Pixel Loss: 0.07148627936840057, Generator Loss: 12.477815628051758, Discriminator Loss: 0.3261488676071167
Epoch 195/200, Pixel Loss: 0.06939767301082611, Generator Loss: 13.486488342285156, Discriminator Loss: 0.41691792011260986
Epoch 196/200, Pixel Loss: 0.06919050961732864, Generator Loss: 12.643852233886719, Discriminator Loss: 0.3911847770214081
Epoch 197/200, Pixel Loss: 0.07470261305570602, Generator Loss: 15.985875129699707, Discriminator Loss: 0.3295690417289734
Epoch 198/200, Pixel Loss: 0.072056345641613, Generator Loss: 14.742914199829102, Discriminator Loss: 0.3695858120918274
Epoch 199/200, Pixel Loss: 0.07214448601007462, Generator Loss: 14.082254409790039, Discriminator Loss: 0.3523550033569336
Epoch 200/200, Pixel Loss: 0.06448903679847717, Generator Loss: 12.82226848602295, Discriminator Loss: 0.4084881544113159
In [ ]:
evaluate(GN_01_test_loader)
Test set evaluation - Pixel Loss: 0.05816, Generator Loss: 15.76081, Discriminator Loss: 0.36721
In [ ]:
visualize_test_results(GN_01_test_loader)
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

alpha = 0.2

In [ ]:
# 데이터셋과 데이터 로더 설정
GN_02_ecg_dataset = GN_ECGDataset(dataset_directory, 0.2)
# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(GN_02_ecg_dataset, [train_size, test_size], generator=seed)

GN_02_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
GN_02_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)

optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)

# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(GN_02_train_loader)
Epoch 1/200, Pixel Loss: 0.36387649178504944, Generator Loss: 22.7894287109375, Discriminator Loss: 0.39250755310058594
Epoch 2/200, Pixel Loss: 0.2553665041923523, Generator Loss: 14.71239185333252, Discriminator Loss: 0.5118203163146973
Epoch 3/200, Pixel Loss: 0.1652361899614334, Generator Loss: 9.284379005432129, Discriminator Loss: 0.6444370746612549
Epoch 4/200, Pixel Loss: 0.1606115847826004, Generator Loss: 9.2314453125, Discriminator Loss: 0.5400763750076294
Epoch 5/200, Pixel Loss: 0.13286195695400238, Generator Loss: 7.753187656402588, Discriminator Loss: 0.49253517389297485
Epoch 6/200, Pixel Loss: 0.1172066256403923, Generator Loss: 6.715152740478516, Discriminator Loss: 0.5645471811294556
Epoch 7/200, Pixel Loss: 0.10999084264039993, Generator Loss: 6.544416904449463, Discriminator Loss: 0.5648161172866821
Epoch 8/200, Pixel Loss: 0.11551608890295029, Generator Loss: 7.0574951171875, Discriminator Loss: 0.4976188540458679
Epoch 9/200, Pixel Loss: 0.11494608968496323, Generator Loss: 7.120445251464844, Discriminator Loss: 0.5412824153900146
Epoch 10/200, Pixel Loss: 0.12195611745119095, Generator Loss: 7.705503463745117, Discriminator Loss: 0.45565587282180786
Epoch 11/200, Pixel Loss: 0.12617355585098267, Generator Loss: 8.438604354858398, Discriminator Loss: 0.3809124231338501
Epoch 12/200, Pixel Loss: 0.10769351571798325, Generator Loss: 6.658315658569336, Discriminator Loss: 0.5396413803100586
Epoch 13/200, Pixel Loss: 0.1047908365726471, Generator Loss: 6.806297302246094, Discriminator Loss: 0.5062234401702881
Epoch 14/200, Pixel Loss: 0.10574580729007721, Generator Loss: 6.678345680236816, Discriminator Loss: 0.5439285635948181
Epoch 15/200, Pixel Loss: 0.1068742573261261, Generator Loss: 6.839072227478027, Discriminator Loss: 0.4755331873893738
Epoch 16/200, Pixel Loss: 0.10959812253713608, Generator Loss: 6.989462852478027, Discriminator Loss: 0.4940779507160187
Epoch 17/200, Pixel Loss: 0.10653182119131088, Generator Loss: 7.328455924987793, Discriminator Loss: 0.6047258377075195
Epoch 18/200, Pixel Loss: 0.10065742582082748, Generator Loss: 6.407210350036621, Discriminator Loss: 0.5695061683654785
Epoch 19/200, Pixel Loss: 0.11352092772722244, Generator Loss: 8.046064376831055, Discriminator Loss: 0.5198700428009033
Epoch 20/200, Pixel Loss: 0.09852611273527145, Generator Loss: 6.702235221862793, Discriminator Loss: 0.5315250158309937
Epoch 21/200, Pixel Loss: 0.10409659892320633, Generator Loss: 7.426183223724365, Discriminator Loss: 0.5169429779052734
Epoch 22/200, Pixel Loss: 0.10045351833105087, Generator Loss: 6.761890411376953, Discriminator Loss: 0.5077365040779114
Epoch 23/200, Pixel Loss: 0.096712127327919, Generator Loss: 6.810375213623047, Discriminator Loss: 0.5364106297492981
Epoch 24/200, Pixel Loss: 0.09951166063547134, Generator Loss: 6.691415786743164, Discriminator Loss: 0.4787694811820984
Epoch 25/200, Pixel Loss: 0.10509004443883896, Generator Loss: 7.290889263153076, Discriminator Loss: 0.4644591808319092
Epoch 26/200, Pixel Loss: 0.09431815892457962, Generator Loss: 7.04680061340332, Discriminator Loss: 0.5055480003356934
Epoch 27/200, Pixel Loss: 0.09538846462965012, Generator Loss: 6.9395904541015625, Discriminator Loss: 0.47139203548431396
Epoch 28/200, Pixel Loss: 0.11186651885509491, Generator Loss: 8.139288902282715, Discriminator Loss: 0.37719279527664185
Epoch 29/200, Pixel Loss: 0.10922838747501373, Generator Loss: 7.987447738647461, Discriminator Loss: 0.4090301990509033
Epoch 30/200, Pixel Loss: 0.10728827118873596, Generator Loss: 7.472901821136475, Discriminator Loss: 0.49015307426452637
Epoch 31/200, Pixel Loss: 0.1125793606042862, Generator Loss: 8.182547569274902, Discriminator Loss: 0.6479570865631104
Epoch 32/200, Pixel Loss: 0.10212002694606781, Generator Loss: 7.385591506958008, Discriminator Loss: 0.5268096923828125
Epoch 33/200, Pixel Loss: 0.1112680435180664, Generator Loss: 8.515507698059082, Discriminator Loss: 0.48708534240722656
Epoch 34/200, Pixel Loss: 0.10624158382415771, Generator Loss: 7.640448093414307, Discriminator Loss: 0.5601385235786438
Epoch 35/200, Pixel Loss: 0.09906943887472153, Generator Loss: 7.195748329162598, Discriminator Loss: 0.4702823758125305
Epoch 36/200, Pixel Loss: 0.10216968506574631, Generator Loss: 7.671016216278076, Discriminator Loss: 0.4406868815422058
Epoch 37/200, Pixel Loss: 0.11672123521566391, Generator Loss: 9.043686866760254, Discriminator Loss: 0.36892929673194885
Epoch 38/200, Pixel Loss: 0.09868563711643219, Generator Loss: 6.987723350524902, Discriminator Loss: 0.5553348064422607
Epoch 39/200, Pixel Loss: 0.10853744298219681, Generator Loss: 7.841373443603516, Discriminator Loss: 0.5087063312530518
Epoch 40/200, Pixel Loss: 0.11072753369808197, Generator Loss: 8.05795669555664, Discriminator Loss: 0.39989760518074036
Epoch 41/200, Pixel Loss: 0.10199754685163498, Generator Loss: 7.139366149902344, Discriminator Loss: 0.6439871788024902
Epoch 42/200, Pixel Loss: 0.10037712007761002, Generator Loss: 7.640345573425293, Discriminator Loss: 0.4218050539493561
Epoch 43/200, Pixel Loss: 0.11049645394086838, Generator Loss: 7.959565162658691, Discriminator Loss: 0.6657357811927795
Epoch 44/200, Pixel Loss: 0.10318951308727264, Generator Loss: 7.962745666503906, Discriminator Loss: 0.42933881282806396
Epoch 45/200, Pixel Loss: 0.1116948276758194, Generator Loss: 7.906757831573486, Discriminator Loss: 0.4222318232059479
Epoch 46/200, Pixel Loss: 0.09685607999563217, Generator Loss: 7.107097148895264, Discriminator Loss: 0.626219630241394
Epoch 47/200, Pixel Loss: 0.10350639373064041, Generator Loss: 7.465191841125488, Discriminator Loss: 0.5371674299240112
Epoch 48/200, Pixel Loss: 0.12086699903011322, Generator Loss: 9.227801322937012, Discriminator Loss: 0.3917236328125
Epoch 49/200, Pixel Loss: 0.10534446686506271, Generator Loss: 7.485215187072754, Discriminator Loss: 0.5727155804634094
Epoch 50/200, Pixel Loss: 0.10340103507041931, Generator Loss: 8.065627098083496, Discriminator Loss: 0.43024784326553345
Epoch 51/200, Pixel Loss: 0.10745216906070709, Generator Loss: 7.141295433044434, Discriminator Loss: 0.5660980939865112
Epoch 52/200, Pixel Loss: 0.09894931316375732, Generator Loss: 8.058755874633789, Discriminator Loss: 0.39420461654663086
Epoch 53/200, Pixel Loss: 0.1037302315235138, Generator Loss: 7.5531158447265625, Discriminator Loss: 0.48815155029296875
Epoch 54/200, Pixel Loss: 0.10010570287704468, Generator Loss: 7.004542350769043, Discriminator Loss: 0.46445560455322266
Epoch 55/200, Pixel Loss: 0.10986501723527908, Generator Loss: 7.733213424682617, Discriminator Loss: 0.6091048717498779
Epoch 56/200, Pixel Loss: 0.1022251695394516, Generator Loss: 7.210187911987305, Discriminator Loss: 0.5291223526000977
Epoch 57/200, Pixel Loss: 0.10538173466920853, Generator Loss: 7.805011749267578, Discriminator Loss: 0.6744500994682312
Epoch 58/200, Pixel Loss: 0.09858401864767075, Generator Loss: 6.8945207595825195, Discriminator Loss: 0.6349518299102783
Epoch 59/200, Pixel Loss: 0.09979306906461716, Generator Loss: 7.104778289794922, Discriminator Loss: 0.4693627953529358
Epoch 60/200, Pixel Loss: 0.10860471427440643, Generator Loss: 8.846264839172363, Discriminator Loss: 0.43857526779174805
Epoch 61/200, Pixel Loss: 0.10668759047985077, Generator Loss: 7.745826721191406, Discriminator Loss: 0.4376881718635559
Epoch 62/200, Pixel Loss: 0.09557359665632248, Generator Loss: 7.2158660888671875, Discriminator Loss: 0.49777519702911377
Epoch 63/200, Pixel Loss: 0.11291831731796265, Generator Loss: 7.847208023071289, Discriminator Loss: 0.44496476650238037
Epoch 64/200, Pixel Loss: 0.10610523074865341, Generator Loss: 7.964011192321777, Discriminator Loss: 0.4556978642940521
Epoch 65/200, Pixel Loss: 0.10482244193553925, Generator Loss: 7.972884178161621, Discriminator Loss: 0.5013009309768677
Epoch 66/200, Pixel Loss: 0.09940843284130096, Generator Loss: 7.5736799240112305, Discriminator Loss: 0.41265928745269775
Epoch 67/200, Pixel Loss: 0.09676972776651382, Generator Loss: 7.286623477935791, Discriminator Loss: 0.4034886360168457
Epoch 68/200, Pixel Loss: 0.10000312328338623, Generator Loss: 7.430370807647705, Discriminator Loss: 0.4532386064529419
Epoch 69/200, Pixel Loss: 0.10604269057512283, Generator Loss: 7.912997722625732, Discriminator Loss: 0.5893248915672302
Epoch 70/200, Pixel Loss: 0.09957532584667206, Generator Loss: 7.750737190246582, Discriminator Loss: 0.40075579285621643
Epoch 71/200, Pixel Loss: 0.1009957417845726, Generator Loss: 7.710253715515137, Discriminator Loss: 0.40076637268066406
Epoch 72/200, Pixel Loss: 0.10104585438966751, Generator Loss: 7.238537311553955, Discriminator Loss: 0.4988771677017212
Epoch 73/200, Pixel Loss: 0.10484353452920914, Generator Loss: 7.837344169616699, Discriminator Loss: 0.39525651931762695
Epoch 74/200, Pixel Loss: 0.10206423699855804, Generator Loss: 7.173542022705078, Discriminator Loss: 0.6771594882011414
Epoch 75/200, Pixel Loss: 0.10808184742927551, Generator Loss: 8.40389633178711, Discriminator Loss: 0.34747135639190674
Epoch 76/200, Pixel Loss: 0.107576884329319, Generator Loss: 7.785473823547363, Discriminator Loss: 0.40142178535461426
Epoch 77/200, Pixel Loss: 0.10230818390846252, Generator Loss: 7.972042083740234, Discriminator Loss: 0.5894418954849243
Epoch 78/200, Pixel Loss: 0.0986977145075798, Generator Loss: 7.476339340209961, Discriminator Loss: 0.40244072675704956
Epoch 79/200, Pixel Loss: 0.10494205355644226, Generator Loss: 7.820778846740723, Discriminator Loss: 0.4898934066295624
Epoch 80/200, Pixel Loss: 0.10666351020336151, Generator Loss: 8.01373291015625, Discriminator Loss: 0.479512482881546
Epoch 81/200, Pixel Loss: 0.11214065551757812, Generator Loss: 7.728438377380371, Discriminator Loss: 0.4113433361053467
Epoch 82/200, Pixel Loss: 0.10834643989801407, Generator Loss: 7.839803218841553, Discriminator Loss: 0.5065011978149414
Epoch 83/200, Pixel Loss: 0.09260950237512589, Generator Loss: 6.888969898223877, Discriminator Loss: 0.43083280324935913
Epoch 84/200, Pixel Loss: 0.10291270911693573, Generator Loss: 7.713482856750488, Discriminator Loss: 0.37542831897735596
Epoch 85/200, Pixel Loss: 0.09972351044416428, Generator Loss: 7.07749080657959, Discriminator Loss: 0.48069673776626587
Epoch 86/200, Pixel Loss: 0.0984724760055542, Generator Loss: 7.390368461608887, Discriminator Loss: 0.3631270229816437
Epoch 87/200, Pixel Loss: 0.09415756165981293, Generator Loss: 6.9862565994262695, Discriminator Loss: 0.3599001467227936
Epoch 88/200, Pixel Loss: 0.0988517552614212, Generator Loss: 7.244932651519775, Discriminator Loss: 0.47770756483078003
Epoch 89/200, Pixel Loss: 0.09582645446062088, Generator Loss: 7.165373802185059, Discriminator Loss: 0.55146723985672
Epoch 90/200, Pixel Loss: 0.0976068302989006, Generator Loss: 7.031597137451172, Discriminator Loss: 0.5648369789123535
Epoch 91/200, Pixel Loss: 0.09609470516443253, Generator Loss: 7.046267986297607, Discriminator Loss: 0.585915744304657
Epoch 92/200, Pixel Loss: 0.10194848477840424, Generator Loss: 7.36502742767334, Discriminator Loss: 0.3837600350379944
Epoch 93/200, Pixel Loss: 0.1028437688946724, Generator Loss: 7.50545597076416, Discriminator Loss: 0.4508237838745117
Epoch 94/200, Pixel Loss: 0.09790030866861343, Generator Loss: 6.95534610748291, Discriminator Loss: 0.5171352624893188
Epoch 95/200, Pixel Loss: 0.09423058480024338, Generator Loss: 7.062774658203125, Discriminator Loss: 0.3747803568840027
Epoch 96/200, Pixel Loss: 0.1151038110256195, Generator Loss: 8.797760009765625, Discriminator Loss: 0.3320451080799103
Epoch 97/200, Pixel Loss: 0.08530710637569427, Generator Loss: 7.025809288024902, Discriminator Loss: 0.43107959628105164
Epoch 98/200, Pixel Loss: 0.1031501367688179, Generator Loss: 7.236572265625, Discriminator Loss: 0.3178480267524719
Epoch 99/200, Pixel Loss: 0.10457871109247208, Generator Loss: 7.523926258087158, Discriminator Loss: 0.582618772983551
Epoch 100/200, Pixel Loss: 0.10276131331920624, Generator Loss: 6.893623352050781, Discriminator Loss: 0.6110947728157043
Epoch 101/200, Pixel Loss: 0.10002807527780533, Generator Loss: 7.242218494415283, Discriminator Loss: 0.6281845569610596
Epoch 102/200, Pixel Loss: 0.09877046197652817, Generator Loss: 7.4487714767456055, Discriminator Loss: 0.3793061673641205
Epoch 103/200, Pixel Loss: 0.09659577906131744, Generator Loss: 6.829936504364014, Discriminator Loss: 0.5490305423736572
Epoch 104/200, Pixel Loss: 0.10012174397706985, Generator Loss: 7.624721527099609, Discriminator Loss: 0.43121999502182007
Epoch 105/200, Pixel Loss: 0.10859504342079163, Generator Loss: 7.632016181945801, Discriminator Loss: 0.4303009510040283
Epoch 106/200, Pixel Loss: 0.09965424984693527, Generator Loss: 7.3872175216674805, Discriminator Loss: 0.5354353189468384
Epoch 107/200, Pixel Loss: 0.10488772392272949, Generator Loss: 7.700567245483398, Discriminator Loss: 0.4099859595298767
Epoch 108/200, Pixel Loss: 0.10084317624568939, Generator Loss: 7.154697418212891, Discriminator Loss: 0.43922579288482666
Epoch 109/200, Pixel Loss: 0.09444859623908997, Generator Loss: 6.959284782409668, Discriminator Loss: 0.4937954545021057
Epoch 110/200, Pixel Loss: 0.10848407447338104, Generator Loss: 7.901823997497559, Discriminator Loss: 0.477664053440094
Epoch 111/200, Pixel Loss: 0.10446416586637497, Generator Loss: 7.647695541381836, Discriminator Loss: 0.4439159035682678
Epoch 112/200, Pixel Loss: 0.10090303421020508, Generator Loss: 7.246286392211914, Discriminator Loss: 0.4420880377292633
Epoch 113/200, Pixel Loss: 0.1060674861073494, Generator Loss: 7.576822280883789, Discriminator Loss: 0.5255514979362488
Epoch 114/200, Pixel Loss: 0.08779731392860413, Generator Loss: 6.63343620300293, Discriminator Loss: 0.5091843605041504
Epoch 115/200, Pixel Loss: 0.09907231479883194, Generator Loss: 6.894959449768066, Discriminator Loss: 0.5207345485687256
Epoch 116/200, Pixel Loss: 0.10079824179410934, Generator Loss: 6.98307991027832, Discriminator Loss: 0.5252737998962402
Epoch 117/200, Pixel Loss: 0.10660777986049652, Generator Loss: 8.446998596191406, Discriminator Loss: 0.42568421363830566
Epoch 118/200, Pixel Loss: 0.10484123975038528, Generator Loss: 7.733681678771973, Discriminator Loss: 0.45183849334716797
Epoch 119/200, Pixel Loss: 0.1016169935464859, Generator Loss: 7.717437744140625, Discriminator Loss: 0.456652969121933
Epoch 120/200, Pixel Loss: 0.10827330499887466, Generator Loss: 8.002086639404297, Discriminator Loss: 0.4579054117202759
Epoch 121/200, Pixel Loss: 0.0995408147573471, Generator Loss: 7.821643829345703, Discriminator Loss: 0.41017019748687744
Epoch 122/200, Pixel Loss: 0.10103026777505875, Generator Loss: 7.851400852203369, Discriminator Loss: 0.3262360095977783
Epoch 123/200, Pixel Loss: 0.09841059148311615, Generator Loss: 7.308443069458008, Discriminator Loss: 0.47034019231796265
Epoch 124/200, Pixel Loss: 0.0943535566329956, Generator Loss: 7.397665023803711, Discriminator Loss: 0.5619556903839111
Epoch 125/200, Pixel Loss: 0.0962633490562439, Generator Loss: 7.32834529876709, Discriminator Loss: 0.49629542231559753
Epoch 126/200, Pixel Loss: 0.10293488204479218, Generator Loss: 7.601626396179199, Discriminator Loss: 0.4425036907196045
Epoch 127/200, Pixel Loss: 0.10196074843406677, Generator Loss: 7.608893394470215, Discriminator Loss: 0.40441709756851196
Epoch 128/200, Pixel Loss: 0.0945785716176033, Generator Loss: 7.072381496429443, Discriminator Loss: 0.42050397396087646
Epoch 129/200, Pixel Loss: 0.10530862212181091, Generator Loss: 7.385584831237793, Discriminator Loss: 0.48977741599082947
Epoch 130/200, Pixel Loss: 0.10777068883180618, Generator Loss: 7.821932315826416, Discriminator Loss: 0.5449700355529785
Epoch 131/200, Pixel Loss: 0.10047967731952667, Generator Loss: 7.258458137512207, Discriminator Loss: 0.48647964000701904
Epoch 132/200, Pixel Loss: 0.09995529055595398, Generator Loss: 7.646071910858154, Discriminator Loss: 0.40222832560539246
Epoch 133/200, Pixel Loss: 0.09997579455375671, Generator Loss: 7.052875518798828, Discriminator Loss: 0.5691349506378174
Epoch 134/200, Pixel Loss: 0.09858013689517975, Generator Loss: 6.955046653747559, Discriminator Loss: 0.5552692413330078
Epoch 135/200, Pixel Loss: 0.08628644794225693, Generator Loss: 7.053832054138184, Discriminator Loss: 0.4513944983482361
Epoch 136/200, Pixel Loss: 0.09073959290981293, Generator Loss: 6.9452619552612305, Discriminator Loss: 0.4263279438018799
Epoch 137/200, Pixel Loss: 0.09448893368244171, Generator Loss: 7.015325546264648, Discriminator Loss: 0.656179666519165
Epoch 138/200, Pixel Loss: 0.094534732401371, Generator Loss: 7.1419219970703125, Discriminator Loss: 0.5259650349617004
Epoch 139/200, Pixel Loss: 0.09617972373962402, Generator Loss: 7.476428508758545, Discriminator Loss: 0.4609237611293793
Epoch 140/200, Pixel Loss: 0.10038263350725174, Generator Loss: 7.747062683105469, Discriminator Loss: 0.38475221395492554
Epoch 141/200, Pixel Loss: 0.09948226809501648, Generator Loss: 7.432041168212891, Discriminator Loss: 0.606094479560852
Epoch 142/200, Pixel Loss: 0.10405208170413971, Generator Loss: 7.971325874328613, Discriminator Loss: 0.4087983965873718
Epoch 143/200, Pixel Loss: 0.10150136798620224, Generator Loss: 8.137487411499023, Discriminator Loss: 0.41241857409477234
Epoch 144/200, Pixel Loss: 0.10688647627830505, Generator Loss: 8.25853443145752, Discriminator Loss: 0.45229530334472656
Epoch 145/200, Pixel Loss: 0.10232227295637131, Generator Loss: 7.275415897369385, Discriminator Loss: 0.5585876107215881
Epoch 146/200, Pixel Loss: 0.09886640310287476, Generator Loss: 7.861792087554932, Discriminator Loss: 0.6169407367706299
Epoch 147/200, Pixel Loss: 0.09106408059597015, Generator Loss: 7.523932456970215, Discriminator Loss: 0.5139966011047363
Epoch 148/200, Pixel Loss: 0.10084585100412369, Generator Loss: 7.4162445068359375, Discriminator Loss: 0.5353297591209412
Epoch 149/200, Pixel Loss: 0.0949934646487236, Generator Loss: 7.484342575073242, Discriminator Loss: 0.5917354822158813
Epoch 150/200, Pixel Loss: 0.09602588415145874, Generator Loss: 8.144100189208984, Discriminator Loss: 0.49996092915534973
Epoch 151/200, Pixel Loss: 0.09465459734201431, Generator Loss: 7.74343204498291, Discriminator Loss: 0.5282487273216248
Epoch 152/200, Pixel Loss: 0.1037178561091423, Generator Loss: 8.10583782196045, Discriminator Loss: 0.3909109830856323
Epoch 153/200, Pixel Loss: 0.09810112416744232, Generator Loss: 8.047183990478516, Discriminator Loss: 0.34660208225250244
Epoch 154/200, Pixel Loss: 0.0927811861038208, Generator Loss: 7.089190483093262, Discriminator Loss: 0.537407636642456
Epoch 155/200, Pixel Loss: 0.09833768755197525, Generator Loss: 7.535067558288574, Discriminator Loss: 0.533199667930603
Epoch 156/200, Pixel Loss: 0.0979098379611969, Generator Loss: 7.850387096405029, Discriminator Loss: 0.4764001965522766
Epoch 157/200, Pixel Loss: 0.10162906348705292, Generator Loss: 7.596141815185547, Discriminator Loss: 0.5326472520828247
Epoch 158/200, Pixel Loss: 0.10512720793485641, Generator Loss: 7.744045257568359, Discriminator Loss: 0.48661935329437256
Epoch 159/200, Pixel Loss: 0.10470299422740936, Generator Loss: 7.983916759490967, Discriminator Loss: 0.41515451669692993
Epoch 160/200, Pixel Loss: 0.10444053262472153, Generator Loss: 7.985878944396973, Discriminator Loss: 0.3724963665008545
Epoch 161/200, Pixel Loss: 0.09711616486310959, Generator Loss: 7.179837226867676, Discriminator Loss: 0.4336869716644287
Epoch 162/200, Pixel Loss: 0.09660307317972183, Generator Loss: 7.254779815673828, Discriminator Loss: 0.4178405702114105
Epoch 163/200, Pixel Loss: 0.0975692942738533, Generator Loss: 6.959600925445557, Discriminator Loss: 0.5525486469268799
Epoch 164/200, Pixel Loss: 0.1017010360956192, Generator Loss: 8.018941879272461, Discriminator Loss: 0.3279198408126831
Epoch 165/200, Pixel Loss: 0.08945254981517792, Generator Loss: 7.174774169921875, Discriminator Loss: 0.4517245292663574
Epoch 166/200, Pixel Loss: 0.09360669553279877, Generator Loss: 7.531864643096924, Discriminator Loss: 0.40863680839538574
Epoch 167/200, Pixel Loss: 0.09052451699972153, Generator Loss: 7.354523658752441, Discriminator Loss: 0.39663049578666687
Epoch 168/200, Pixel Loss: 0.09879828989505768, Generator Loss: 7.547579288482666, Discriminator Loss: 0.5084188580513
Epoch 169/200, Pixel Loss: 0.09042329341173172, Generator Loss: 7.08253812789917, Discriminator Loss: 0.47714072465896606
Epoch 170/200, Pixel Loss: 0.10395228862762451, Generator Loss: 7.744917869567871, Discriminator Loss: 0.3425952196121216
Epoch 171/200, Pixel Loss: 0.08850806951522827, Generator Loss: 6.0252861976623535, Discriminator Loss: 0.6067677736282349
Epoch 172/200, Pixel Loss: 0.10206964612007141, Generator Loss: 7.286230087280273, Discriminator Loss: 0.46450215578079224
Epoch 173/200, Pixel Loss: 0.10147824138402939, Generator Loss: 7.475391387939453, Discriminator Loss: 0.44674360752105713
Epoch 174/200, Pixel Loss: 0.10236741602420807, Generator Loss: 7.023863315582275, Discriminator Loss: 0.6046643257141113
Epoch 175/200, Pixel Loss: 0.09000059962272644, Generator Loss: 7.498195171356201, Discriminator Loss: 0.4522690176963806
Epoch 176/200, Pixel Loss: 0.09177516400814056, Generator Loss: 7.098307132720947, Discriminator Loss: 0.4652414321899414
Epoch 177/200, Pixel Loss: 0.1055172011256218, Generator Loss: 8.054435729980469, Discriminator Loss: 0.6020073890686035
Epoch 178/200, Pixel Loss: 0.09923483431339264, Generator Loss: 8.065793991088867, Discriminator Loss: 0.43655717372894287
Epoch 179/200, Pixel Loss: 0.09702747315168381, Generator Loss: 7.968117713928223, Discriminator Loss: 0.3562161922454834
Epoch 180/200, Pixel Loss: 0.0987916812300682, Generator Loss: 7.940621852874756, Discriminator Loss: 0.3210943937301636
Epoch 181/200, Pixel Loss: 0.09402864426374435, Generator Loss: 6.9482831954956055, Discriminator Loss: 0.6832982301712036
Epoch 182/200, Pixel Loss: 0.10412152856588364, Generator Loss: 7.564249515533447, Discriminator Loss: 0.6302326321601868
Epoch 183/200, Pixel Loss: 0.09120164811611176, Generator Loss: 6.944719314575195, Discriminator Loss: 0.4975398778915405
Epoch 184/200, Pixel Loss: 0.09708824008703232, Generator Loss: 7.071582794189453, Discriminator Loss: 0.4504740238189697
Epoch 185/200, Pixel Loss: 0.09986951947212219, Generator Loss: 7.733616828918457, Discriminator Loss: 0.3768443763256073
Epoch 186/200, Pixel Loss: 0.09180112928152084, Generator Loss: 7.266900062561035, Discriminator Loss: 0.47771185636520386
Epoch 187/200, Pixel Loss: 0.09482669830322266, Generator Loss: 6.409388065338135, Discriminator Loss: 0.6215565800666809
Epoch 188/200, Pixel Loss: 0.09434931725263596, Generator Loss: 7.254343032836914, Discriminator Loss: 0.3985353112220764
Epoch 189/200, Pixel Loss: 0.09105115383863449, Generator Loss: 7.0143046379089355, Discriminator Loss: 0.38805636763572693
Epoch 190/200, Pixel Loss: 0.09554972499608994, Generator Loss: 6.885110855102539, Discriminator Loss: 0.4955245852470398
Epoch 191/200, Pixel Loss: 0.09514894336462021, Generator Loss: 6.807788848876953, Discriminator Loss: 0.40088772773742676
Epoch 192/200, Pixel Loss: 0.10326860100030899, Generator Loss: 7.703766822814941, Discriminator Loss: 0.47568386793136597
Epoch 193/200, Pixel Loss: 0.09013207256793976, Generator Loss: 6.639475345611572, Discriminator Loss: 0.4493706226348877
Epoch 194/200, Pixel Loss: 0.09778203815221786, Generator Loss: 7.247729301452637, Discriminator Loss: 0.4666832387447357
Epoch 195/200, Pixel Loss: 0.10195638239383698, Generator Loss: 7.89650297164917, Discriminator Loss: 0.5790175199508667
Epoch 196/200, Pixel Loss: 0.0886402428150177, Generator Loss: 6.412120342254639, Discriminator Loss: 0.7583118081092834
Epoch 197/200, Pixel Loss: 0.09762821346521378, Generator Loss: 7.44094181060791, Discriminator Loss: 0.4655802845954895
Epoch 198/200, Pixel Loss: 0.09377022832632065, Generator Loss: 6.7623090744018555, Discriminator Loss: 0.5398871302604675
Epoch 199/200, Pixel Loss: 0.09170300513505936, Generator Loss: 6.916144847869873, Discriminator Loss: 0.4609636664390564
Epoch 200/200, Pixel Loss: 0.10209741443395615, Generator Loss: 7.775061130523682, Discriminator Loss: 0.33199387788772583
In [ ]:
evaluate(GN_02_test_loader)
Test set evaluation - Pixel Loss: 0.08237, Generator Loss: 7.86039, Discriminator Loss: 0.26355
In [ ]:
visualize_test_results(GN_02_test_loader)
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

High Frequency Noise¶

In [ ]:
class HF_ECGDataset(Dataset):
    def __init__(self, directory):
        self.data = []
        segment_length = 1600  # 2초 길이의 샘플 수

        # 모든 환자 디렉터리 반복
        for patient_num in range(1, 93):
            patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
            seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
            
            for seg_file in seg_files:
                data_file = os.path.join(patient_dir, seg_file)
                header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
                
                num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
                ii_index = channel_names.index('II')
                
                ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
                
                # 각 세그먼트를 2초씩 잘라서 저장
                num_segments = 5
                for i in range(num_segments):
                    start = i * segment_length
                    end = start + segment_length
                    segment_data = {
                        "II": ecg_data[ii_index][start:end]
                    }

                    # II 채널 표준화
                    segment_data["II"] = (segment_data["II"] - np.mean(segment_data["II"])) / np.std(segment_data["II"])

                    # 랜덤 주파수의 high frequency noise 추가하여 II-Raw 생성
                    random_frequency = np.random.uniform(50, 100)
                    t = np.linspace(0, 2, segment_length, endpoint=False)
                    high_freq_noise = 0.1 * np.sin(2 * np.pi * random_frequency * t)  # 랜덤 주파수의 고주파 노이즈
                    segment_data["II-Raw"] = segment_data["II"] + high_freq_noise

                    self.data.append(segment_data)

    def parse_header(self, file_path):
        with open(file_path, 'r', encoding='latin1') as file:
            lines = file.readlines()
        num_channels = int(lines[0].split(' ')[1])
        samples_per_channel = int(lines[0].split(' ')[3])
        channel_names = []
        for line in lines[1:num_channels+1]:
            channel_info = line.split(' ')
            channel_names.append(channel_info[-1].strip())
        return num_channels, samples_per_channel, channel_names

    def load_ecg_data(self, num_channels, samples_per_channel, data_file):
        ecg_data = np.fromfile(data_file, dtype='int16')
        ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
        return ecg_data

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        sample = self.data[idx]
        return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}
    
    
# 데이터셋과 데이터 로더 설정
HF_ecg_dataset = HF_ECGDataset(dataset_directory)
# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(HF_ecg_dataset, [train_size, test_size], generator=seed)

HF_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
HF_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)

optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)

# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(HF_train_loader)
Epoch 1/200, Pixel Loss: 0.4554530680179596, Generator Loss: 31.783733367919922, Discriminator Loss: 0.2070542722940445
Epoch 2/200, Pixel Loss: 0.21022437512874603, Generator Loss: 14.74088191986084, Discriminator Loss: 0.34174856543540955
Epoch 3/200, Pixel Loss: 0.1519792377948761, Generator Loss: 15.164966583251953, Discriminator Loss: 0.12043393403291702
Epoch 4/200, Pixel Loss: 0.11428924649953842, Generator Loss: 12.569782257080078, Discriminator Loss: 0.1390605866909027
Epoch 5/200, Pixel Loss: 0.09650153666734695, Generator Loss: 12.310834884643555, Discriminator Loss: 0.211290642619133
Epoch 6/200, Pixel Loss: 0.09431913495063782, Generator Loss: 11.324161529541016, Discriminator Loss: 0.1286637932062149
Epoch 7/200, Pixel Loss: 0.10500384122133255, Generator Loss: 15.955427169799805, Discriminator Loss: 0.19491158425807953
Epoch 8/200, Pixel Loss: 0.08163084089756012, Generator Loss: 11.770698547363281, Discriminator Loss: 0.24797716736793518
Epoch 9/200, Pixel Loss: 0.08285237103700638, Generator Loss: 13.138980865478516, Discriminator Loss: 0.12586508691310883
Epoch 10/200, Pixel Loss: 0.10342033952474594, Generator Loss: 18.188446044921875, Discriminator Loss: 0.04416187107563019
Epoch 11/200, Pixel Loss: 0.07528284192085266, Generator Loss: 16.329833984375, Discriminator Loss: 0.12407396733760834
Epoch 12/200, Pixel Loss: 0.08576946705579758, Generator Loss: 18.89992904663086, Discriminator Loss: 0.082955002784729
Epoch 13/200, Pixel Loss: 0.09526988118886948, Generator Loss: 23.314821243286133, Discriminator Loss: 0.04406601935625076
Epoch 14/200, Pixel Loss: 0.08523348718881607, Generator Loss: 24.283296585083008, Discriminator Loss: 0.045650482177734375
Epoch 15/200, Pixel Loss: 0.07722452282905579, Generator Loss: 25.797550201416016, Discriminator Loss: 0.034500621259212494
Epoch 16/200, Pixel Loss: 0.07768478989601135, Generator Loss: 26.75173568725586, Discriminator Loss: 0.02693958953022957
Epoch 17/200, Pixel Loss: 0.08572544902563095, Generator Loss: 29.879121780395508, Discriminator Loss: 0.02201635017991066
Epoch 18/200, Pixel Loss: 0.08359520137310028, Generator Loss: 28.35310935974121, Discriminator Loss: 0.03588080406188965
Epoch 19/200, Pixel Loss: 0.07068205624818802, Generator Loss: 26.794296264648438, Discriminator Loss: 0.030731188133358955
Epoch 20/200, Pixel Loss: 0.0966152772307396, Generator Loss: 34.89556121826172, Discriminator Loss: 0.01701328530907631
Epoch 21/200, Pixel Loss: 0.08130620419979095, Generator Loss: 34.28847122192383, Discriminator Loss: 0.014448370784521103
Epoch 22/200, Pixel Loss: 0.10818924754858017, Generator Loss: 36.49433898925781, Discriminator Loss: 0.018588373437523842
Epoch 23/200, Pixel Loss: 0.0973721295595169, Generator Loss: 29.235210418701172, Discriminator Loss: 0.24765518307685852
Epoch 24/200, Pixel Loss: 0.06918393820524216, Generator Loss: 22.636940002441406, Discriminator Loss: 0.05907013639807701
Epoch 25/200, Pixel Loss: 0.08127174526453018, Generator Loss: 27.56538963317871, Discriminator Loss: 0.025240298360586166
Epoch 26/200, Pixel Loss: 0.09088865667581558, Generator Loss: 31.755268096923828, Discriminator Loss: 0.020806871354579926
Epoch 27/200, Pixel Loss: 0.08524415642023087, Generator Loss: 33.424556732177734, Discriminator Loss: 0.012604748830199242
Epoch 28/200, Pixel Loss: 0.08860155194997787, Generator Loss: 35.55028533935547, Discriminator Loss: 0.009165876545011997
Epoch 29/200, Pixel Loss: 0.09298104792833328, Generator Loss: 36.41962814331055, Discriminator Loss: 0.012863943353295326
Epoch 30/200, Pixel Loss: 0.0846899002790451, Generator Loss: 36.428802490234375, Discriminator Loss: 0.009160813875496387
Epoch 31/200, Pixel Loss: 0.10219155251979828, Generator Loss: 42.04072952270508, Discriminator Loss: 0.006510576233267784
Epoch 32/200, Pixel Loss: 0.09918469190597534, Generator Loss: 40.39529037475586, Discriminator Loss: 0.006782087963074446
Epoch 33/200, Pixel Loss: 0.09249511361122131, Generator Loss: 39.27998352050781, Discriminator Loss: 0.007591536268591881
Epoch 34/200, Pixel Loss: 0.10316795110702515, Generator Loss: 42.7995491027832, Discriminator Loss: 0.00408141640946269
Epoch 35/200, Pixel Loss: 0.08504734188318253, Generator Loss: 41.202354431152344, Discriminator Loss: 0.01148742064833641
Epoch 36/200, Pixel Loss: 0.10134780406951904, Generator Loss: 45.130184173583984, Discriminator Loss: 0.0016141580417752266
Epoch 37/200, Pixel Loss: 0.08799304813146591, Generator Loss: 42.465980529785156, Discriminator Loss: 0.004237497225403786
Epoch 38/200, Pixel Loss: 0.09447187185287476, Generator Loss: 43.80339813232422, Discriminator Loss: 0.004485113080590963
Epoch 39/200, Pixel Loss: 0.08239535987377167, Generator Loss: 43.44000244140625, Discriminator Loss: 0.006647788919508457
Epoch 40/200, Pixel Loss: 0.092877097427845, Generator Loss: 44.07835006713867, Discriminator Loss: 0.005255646072328091
Epoch 41/200, Pixel Loss: 0.08539588749408722, Generator Loss: 44.51115036010742, Discriminator Loss: 0.004895199090242386
Epoch 42/200, Pixel Loss: 0.08519446104764938, Generator Loss: 44.723388671875, Discriminator Loss: 0.004551597870886326
Epoch 43/200, Pixel Loss: 0.08222610503435135, Generator Loss: 41.79090881347656, Discriminator Loss: 0.0016744108870625496
Epoch 44/200, Pixel Loss: 0.08481597900390625, Generator Loss: 49.95701599121094, Discriminator Loss: 0.002329286653548479
Epoch 45/200, Pixel Loss: 0.0902717113494873, Generator Loss: 46.909854888916016, Discriminator Loss: 0.005630492232739925
Epoch 46/200, Pixel Loss: 0.08899499475955963, Generator Loss: 34.712886810302734, Discriminator Loss: 1.01168692111969
Epoch 47/200, Pixel Loss: 0.08150815963745117, Generator Loss: 23.349559783935547, Discriminator Loss: 0.134553462266922
Epoch 48/200, Pixel Loss: 0.09723762422800064, Generator Loss: 31.239910125732422, Discriminator Loss: 0.03517872095108032
Epoch 49/200, Pixel Loss: 0.10344823449850082, Generator Loss: 34.84236145019531, Discriminator Loss: 0.02193715050816536
Epoch 50/200, Pixel Loss: 0.08809373527765274, Generator Loss: 35.732749938964844, Discriminator Loss: 0.01899022050201893
Epoch 51/200, Pixel Loss: 0.09795762598514557, Generator Loss: 39.05964660644531, Discriminator Loss: 0.008989809080958366
Epoch 52/200, Pixel Loss: 0.10051879286766052, Generator Loss: 40.57844161987305, Discriminator Loss: 0.0074558742344379425
Epoch 53/200, Pixel Loss: 0.08175235241651535, Generator Loss: 36.98003005981445, Discriminator Loss: 0.009848267771303654
Epoch 54/200, Pixel Loss: 0.09844688326120377, Generator Loss: 45.063621520996094, Discriminator Loss: 0.004395040217787027
Epoch 55/200, Pixel Loss: 0.10248164087533951, Generator Loss: 44.35293197631836, Discriminator Loss: 0.0047564078122377396
Epoch 56/200, Pixel Loss: 0.09098365902900696, Generator Loss: 41.714256286621094, Discriminator Loss: 0.006757128518074751
Epoch 57/200, Pixel Loss: 0.09352704882621765, Generator Loss: 44.004512786865234, Discriminator Loss: 0.0031894827261567116
Epoch 58/200, Pixel Loss: 0.08129089325666428, Generator Loss: 46.534324645996094, Discriminator Loss: 0.004894045181572437
Epoch 59/200, Pixel Loss: 0.11622413247823715, Generator Loss: 51.737953186035156, Discriminator Loss: 0.002340286737307906
Epoch 60/200, Pixel Loss: 0.09557054936885834, Generator Loss: 50.21390151977539, Discriminator Loss: 0.007001902908086777
Epoch 61/200, Pixel Loss: 0.10588119179010391, Generator Loss: 54.94865036010742, Discriminator Loss: 0.009827634319663048
Epoch 62/200, Pixel Loss: 0.10330604016780853, Generator Loss: 52.602561950683594, Discriminator Loss: 0.005198209546506405
Epoch 63/200, Pixel Loss: 0.09455572068691254, Generator Loss: 49.48241424560547, Discriminator Loss: 0.004703463986515999
Epoch 64/200, Pixel Loss: 0.08533348143100739, Generator Loss: 51.93570327758789, Discriminator Loss: 0.003622691612690687
Epoch 65/200, Pixel Loss: 0.0830676406621933, Generator Loss: 47.61897277832031, Discriminator Loss: 0.0048690312542021275
Epoch 66/200, Pixel Loss: 0.08761382848024368, Generator Loss: 51.34882354736328, Discriminator Loss: 0.004034190904349089
Epoch 67/200, Pixel Loss: 0.09572465717792511, Generator Loss: 52.603206634521484, Discriminator Loss: 0.0026615075767040253
Epoch 68/200, Pixel Loss: 0.08403734117746353, Generator Loss: 48.2488899230957, Discriminator Loss: 0.006542969029396772
Epoch 69/200, Pixel Loss: 0.08840809017419815, Generator Loss: 53.258323669433594, Discriminator Loss: 0.0008985151071101427
Epoch 70/200, Pixel Loss: 0.10625546425580978, Generator Loss: 57.458251953125, Discriminator Loss: 0.0038706029299646616
Epoch 71/200, Pixel Loss: 0.07853325456380844, Generator Loss: 49.19474792480469, Discriminator Loss: 0.001208058325573802
Epoch 72/200, Pixel Loss: 0.09735017269849777, Generator Loss: 59.73601150512695, Discriminator Loss: 0.02637900598347187
Epoch 73/200, Pixel Loss: 0.10898353159427643, Generator Loss: 35.8967399597168, Discriminator Loss: 1.485106348991394
Epoch 74/200, Pixel Loss: 0.10496777296066284, Generator Loss: 32.08087921142578, Discriminator Loss: 0.07504700124263763
Epoch 75/200, Pixel Loss: 0.07185865938663483, Generator Loss: 32.24117660522461, Discriminator Loss: 0.036177679896354675
Epoch 76/200, Pixel Loss: 0.07469163835048676, Generator Loss: 34.1518669128418, Discriminator Loss: 0.02323339134454727
Epoch 77/200, Pixel Loss: 0.07693689316511154, Generator Loss: 34.763458251953125, Discriminator Loss: 0.018166866153478622
Epoch 78/200, Pixel Loss: 0.08438774198293686, Generator Loss: 39.41299819946289, Discriminator Loss: 0.017522510141134262
Epoch 79/200, Pixel Loss: 0.07763954997062683, Generator Loss: 39.93253707885742, Discriminator Loss: 0.01029217429459095
Epoch 80/200, Pixel Loss: 0.08289971947669983, Generator Loss: 41.68998718261719, Discriminator Loss: 0.007631207816302776
Epoch 81/200, Pixel Loss: 0.09937702119350433, Generator Loss: 44.890106201171875, Discriminator Loss: 0.006860556546598673
Epoch 82/200, Pixel Loss: 0.09355577081441879, Generator Loss: 47.54543685913086, Discriminator Loss: 0.0058937110006809235
Epoch 83/200, Pixel Loss: 0.0836300253868103, Generator Loss: 44.993919372558594, Discriminator Loss: 0.010284651070833206
Epoch 84/200, Pixel Loss: 0.09210415929555893, Generator Loss: 47.44923782348633, Discriminator Loss: 0.003534679301083088
Epoch 85/200, Pixel Loss: 0.10951488465070724, Generator Loss: 55.80876922607422, Discriminator Loss: 0.004679817706346512
Epoch 86/200, Pixel Loss: 0.0919538214802742, Generator Loss: 50.88223648071289, Discriminator Loss: 0.004980246536433697
Epoch 87/200, Pixel Loss: 0.09027280658483505, Generator Loss: 52.66563415527344, Discriminator Loss: 0.0019220463000237942
Epoch 88/200, Pixel Loss: 0.094021737575531, Generator Loss: 48.95351791381836, Discriminator Loss: 0.008167373016476631
Epoch 89/200, Pixel Loss: 0.10642191767692566, Generator Loss: 56.82439041137695, Discriminator Loss: 0.0049822283908724785
Epoch 90/200, Pixel Loss: 0.08793961256742477, Generator Loss: 49.3328857421875, Discriminator Loss: 0.003682494629174471
Epoch 91/200, Pixel Loss: 0.08749948441982269, Generator Loss: 55.480430603027344, Discriminator Loss: 0.004738560877740383
Epoch 92/200, Pixel Loss: 0.1147012934088707, Generator Loss: 59.882476806640625, Discriminator Loss: 0.003371428232640028
Epoch 93/200, Pixel Loss: 0.09239247441291809, Generator Loss: 54.12368392944336, Discriminator Loss: 0.010927410796284676
Epoch 94/200, Pixel Loss: 0.0981835350394249, Generator Loss: 53.044158935546875, Discriminator Loss: 0.00510189076885581
Epoch 95/200, Pixel Loss: 0.0809706598520279, Generator Loss: 50.41398620605469, Discriminator Loss: 0.003388702403753996
Epoch 96/200, Pixel Loss: 0.09456288814544678, Generator Loss: 57.91358184814453, Discriminator Loss: 0.002343426225706935
Epoch 97/200, Pixel Loss: 0.07873428612947464, Generator Loss: 56.199771881103516, Discriminator Loss: 0.005277705378830433
Epoch 98/200, Pixel Loss: 0.10084906965494156, Generator Loss: 56.4371452331543, Discriminator Loss: 0.012991227209568024
Epoch 99/200, Pixel Loss: 0.09162630885839462, Generator Loss: 60.55791473388672, Discriminator Loss: 0.0037719726096838713
Epoch 100/200, Pixel Loss: 0.09448357671499252, Generator Loss: 55.234771728515625, Discriminator Loss: 0.005547896958887577
Epoch 101/200, Pixel Loss: 0.08405620604753494, Generator Loss: 59.246986389160156, Discriminator Loss: 0.0013657095842063427
Epoch 102/200, Pixel Loss: 0.08926044404506683, Generator Loss: 56.868690490722656, Discriminator Loss: 0.004065480083227158
Epoch 103/200, Pixel Loss: 0.08676660060882568, Generator Loss: 56.82643508911133, Discriminator Loss: 0.0049581220373511314
Epoch 104/200, Pixel Loss: 0.08954811841249466, Generator Loss: 39.07188034057617, Discriminator Loss: 0.17454957962036133
Epoch 105/200, Pixel Loss: 0.08436717092990875, Generator Loss: 40.38607406616211, Discriminator Loss: 0.052778396755456924
Epoch 106/200, Pixel Loss: 0.08938830345869064, Generator Loss: 44.09074783325195, Discriminator Loss: 0.01864713802933693
Epoch 107/200, Pixel Loss: 0.09334895759820938, Generator Loss: 44.97211456298828, Discriminator Loss: 0.011174513027071953
Epoch 108/200, Pixel Loss: 0.08961796760559082, Generator Loss: 48.34809112548828, Discriminator Loss: 0.007817547768354416
Epoch 109/200, Pixel Loss: 0.07877904921770096, Generator Loss: 42.725528717041016, Discriminator Loss: 0.008246684446930885
Epoch 110/200, Pixel Loss: 0.08626288920640945, Generator Loss: 48.09469223022461, Discriminator Loss: 0.003259114921092987
Epoch 111/200, Pixel Loss: 0.08836876600980759, Generator Loss: 52.203826904296875, Discriminator Loss: 0.004713323432952166
Epoch 112/200, Pixel Loss: 0.0893184095621109, Generator Loss: 48.47845458984375, Discriminator Loss: 0.0026758171152323484
Epoch 113/200, Pixel Loss: 0.08730337023735046, Generator Loss: 52.05429458618164, Discriminator Loss: 0.004242902155965567
Epoch 114/200, Pixel Loss: 0.08180543035268784, Generator Loss: 49.00968551635742, Discriminator Loss: 0.005799394566565752
Epoch 115/200, Pixel Loss: 0.07945873588323593, Generator Loss: 54.71493911743164, Discriminator Loss: 0.0031516519375145435
Epoch 116/200, Pixel Loss: 0.0903601124882698, Generator Loss: 59.84451675415039, Discriminator Loss: 0.011476779356598854
Epoch 117/200, Pixel Loss: 0.08615997433662415, Generator Loss: 58.65169906616211, Discriminator Loss: 0.0006947001093067229
Epoch 118/200, Pixel Loss: 0.08629947155714035, Generator Loss: 54.4923210144043, Discriminator Loss: 0.004084461834281683
Epoch 119/200, Pixel Loss: 0.0907571017742157, Generator Loss: 55.72064208984375, Discriminator Loss: 0.018804442137479782
Epoch 120/200, Pixel Loss: 0.08302699774503708, Generator Loss: 55.44072723388672, Discriminator Loss: 0.0024385738652199507
Epoch 121/200, Pixel Loss: 0.0820508748292923, Generator Loss: 55.061485290527344, Discriminator Loss: 0.0033067597541958094
Epoch 122/200, Pixel Loss: 0.0816781148314476, Generator Loss: 54.04719161987305, Discriminator Loss: 0.0035168281756341457
Epoch 123/200, Pixel Loss: 0.07773253321647644, Generator Loss: 54.094505310058594, Discriminator Loss: 0.007979373447597027
Epoch 124/200, Pixel Loss: 0.08818008005619049, Generator Loss: 58.4444694519043, Discriminator Loss: 0.00364198861643672
Epoch 125/200, Pixel Loss: 0.1012844517827034, Generator Loss: 64.16295623779297, Discriminator Loss: 0.003427779534831643
Epoch 126/200, Pixel Loss: 0.08219266682863235, Generator Loss: 59.0078125, Discriminator Loss: 0.0007966769626364112
Epoch 127/200, Pixel Loss: 0.07947713881731033, Generator Loss: 59.08611297607422, Discriminator Loss: 0.002226507291197777
Epoch 128/200, Pixel Loss: 0.085182324051857, Generator Loss: 65.19209289550781, Discriminator Loss: 0.0006022138986736536
Epoch 129/200, Pixel Loss: 0.08957342058420181, Generator Loss: 64.00122833251953, Discriminator Loss: 0.0005738025065511465
Epoch 130/200, Pixel Loss: 0.07265709340572357, Generator Loss: 59.184959411621094, Discriminator Loss: 0.0019088678527623415
Epoch 131/200, Pixel Loss: 0.08177977055311203, Generator Loss: 58.675193786621094, Discriminator Loss: 0.010958361439406872
Epoch 132/200, Pixel Loss: 0.08793909102678299, Generator Loss: 60.31879806518555, Discriminator Loss: 0.0005208757938817143
Epoch 133/200, Pixel Loss: 0.08856744319200516, Generator Loss: 61.467994689941406, Discriminator Loss: 0.006837380118668079
Epoch 134/200, Pixel Loss: 0.08543645590543747, Generator Loss: 62.133914947509766, Discriminator Loss: 0.0008442184189334512
Epoch 135/200, Pixel Loss: 0.09658677875995636, Generator Loss: 67.16282653808594, Discriminator Loss: 0.00350678781978786
Epoch 136/200, Pixel Loss: 0.1016339361667633, Generator Loss: 65.98936462402344, Discriminator Loss: 0.001661189366132021
Epoch 137/200, Pixel Loss: 0.09857440739870071, Generator Loss: 70.41082763671875, Discriminator Loss: 0.0004952285089530051
Epoch 138/200, Pixel Loss: 0.07605257630348206, Generator Loss: 47.9392204284668, Discriminator Loss: 0.8475552201271057
Epoch 139/200, Pixel Loss: 0.104756660759449, Generator Loss: 48.724945068359375, Discriminator Loss: 0.025213753804564476
Epoch 140/200, Pixel Loss: 0.08866298198699951, Generator Loss: 41.855010986328125, Discriminator Loss: 0.010206533595919609
Epoch 141/200, Pixel Loss: 0.09523924440145493, Generator Loss: 49.58555603027344, Discriminator Loss: 0.005313583184033632
Epoch 142/200, Pixel Loss: 0.07677871733903885, Generator Loss: 43.68568801879883, Discriminator Loss: 0.014167077839374542
Epoch 143/200, Pixel Loss: 0.06990266591310501, Generator Loss: 45.51544952392578, Discriminator Loss: 0.007665739394724369
Epoch 144/200, Pixel Loss: 0.08498251438140869, Generator Loss: 51.77128219604492, Discriminator Loss: 0.007568442262709141
Epoch 145/200, Pixel Loss: 0.07971008867025375, Generator Loss: 49.23684310913086, Discriminator Loss: 0.0026979809626936913
Epoch 146/200, Pixel Loss: 0.08460982143878937, Generator Loss: 54.904258728027344, Discriminator Loss: 0.0026930326130241156
Epoch 147/200, Pixel Loss: 0.08370482921600342, Generator Loss: 55.41433334350586, Discriminator Loss: 0.0037878775037825108
Epoch 148/200, Pixel Loss: 0.09305768460035324, Generator Loss: 60.182212829589844, Discriminator Loss: 0.005598924122750759
Epoch 149/200, Pixel Loss: 0.09565272927284241, Generator Loss: 56.24224853515625, Discriminator Loss: 0.0033104517497122288
Epoch 150/200, Pixel Loss: 0.091341033577919, Generator Loss: 59.59064865112305, Discriminator Loss: 0.005281446967273951
Epoch 151/200, Pixel Loss: 0.08938208222389221, Generator Loss: 58.520851135253906, Discriminator Loss: 0.0008582173031754792
Epoch 152/200, Pixel Loss: 0.09632842987775803, Generator Loss: 61.58516311645508, Discriminator Loss: 0.00037611121661029756
Epoch 153/200, Pixel Loss: 0.08615050464868546, Generator Loss: 60.19208908081055, Discriminator Loss: 0.0028592110611498356
Epoch 154/200, Pixel Loss: 0.10230055451393127, Generator Loss: 63.0416374206543, Discriminator Loss: 0.0014282369520515203
Epoch 155/200, Pixel Loss: 0.09117467701435089, Generator Loss: 60.575077056884766, Discriminator Loss: 0.001282637589611113
Epoch 156/200, Pixel Loss: 0.10280009359121323, Generator Loss: 65.70272064208984, Discriminator Loss: 0.0012015303364023566
Epoch 157/200, Pixel Loss: 0.08887837827205658, Generator Loss: 62.0810546875, Discriminator Loss: 0.003200695849955082
Epoch 158/200, Pixel Loss: 0.10262368619441986, Generator Loss: 70.07960510253906, Discriminator Loss: 8.709414396435022e-05
Epoch 159/200, Pixel Loss: 0.09538835287094116, Generator Loss: 64.95088195800781, Discriminator Loss: 0.0002466145670041442
Epoch 160/200, Pixel Loss: 0.08571170270442963, Generator Loss: 63.09918975830078, Discriminator Loss: 0.0005768825649283826
Epoch 161/200, Pixel Loss: 0.08086208254098892, Generator Loss: 60.56665802001953, Discriminator Loss: 0.0029012481682002544
Epoch 162/200, Pixel Loss: 0.08521533012390137, Generator Loss: 58.346065521240234, Discriminator Loss: 0.0077554648742079735
Epoch 163/200, Pixel Loss: 0.0925784483551979, Generator Loss: 66.73079681396484, Discriminator Loss: 0.003319671843200922
Epoch 164/200, Pixel Loss: 0.08646077662706375, Generator Loss: 65.02767944335938, Discriminator Loss: 0.0019513396546244621
Epoch 165/200, Pixel Loss: 0.08477921038866043, Generator Loss: 61.93980026245117, Discriminator Loss: 0.0007295606192201376
Epoch 166/200, Pixel Loss: 0.09552362561225891, Generator Loss: 70.54017639160156, Discriminator Loss: 0.0032715557608753443
Epoch 167/200, Pixel Loss: 0.08590351790189743, Generator Loss: 60.85734558105469, Discriminator Loss: 0.0006533917039632797
Epoch 168/200, Pixel Loss: 0.09504935890436172, Generator Loss: 66.59974670410156, Discriminator Loss: 0.0009463662281632423
Epoch 169/200, Pixel Loss: 0.0874093696475029, Generator Loss: 67.16053009033203, Discriminator Loss: 0.0011176853440701962
Epoch 170/200, Pixel Loss: 0.08320600539445877, Generator Loss: 35.65757751464844, Discriminator Loss: 0.06364636868238449
Epoch 171/200, Pixel Loss: 0.09724639356136322, Generator Loss: 53.567787170410156, Discriminator Loss: 0.005301056429743767
Epoch 172/200, Pixel Loss: 0.09126943349838257, Generator Loss: 53.67066955566406, Discriminator Loss: 0.00686401454731822
Epoch 173/200, Pixel Loss: 0.07931429892778397, Generator Loss: 54.371761322021484, Discriminator Loss: 0.00936500821262598
Epoch 174/200, Pixel Loss: 0.09203734993934631, Generator Loss: 58.84690856933594, Discriminator Loss: 0.001607059151865542
Epoch 175/200, Pixel Loss: 0.08868429064750671, Generator Loss: 59.05876541137695, Discriminator Loss: 0.004003539681434631
Epoch 176/200, Pixel Loss: 0.08667784184217453, Generator Loss: 58.411163330078125, Discriminator Loss: 0.0030783284455537796
Epoch 177/200, Pixel Loss: 0.10459743440151215, Generator Loss: 65.80213928222656, Discriminator Loss: 0.0016225778963416815
Epoch 178/200, Pixel Loss: 0.09461789578199387, Generator Loss: 68.60438537597656, Discriminator Loss: 0.0018662369111552835
Epoch 179/200, Pixel Loss: 0.08281354606151581, Generator Loss: 57.905845642089844, Discriminator Loss: 0.004306423477828503
Epoch 180/200, Pixel Loss: 0.08123674243688583, Generator Loss: 60.94367218017578, Discriminator Loss: 0.004140033852308989
Epoch 181/200, Pixel Loss: 0.07557842135429382, Generator Loss: 58.646148681640625, Discriminator Loss: 0.0013515176251530647
Epoch 182/200, Pixel Loss: 0.08314821869134903, Generator Loss: 63.076454162597656, Discriminator Loss: 0.0015417624963447452
Epoch 183/200, Pixel Loss: 0.07799047231674194, Generator Loss: 63.049198150634766, Discriminator Loss: 0.009946738369762897
Epoch 184/200, Pixel Loss: 0.09332866221666336, Generator Loss: 69.53429412841797, Discriminator Loss: 0.002529720775783062
Epoch 185/200, Pixel Loss: 0.10168920457363129, Generator Loss: 72.23904418945312, Discriminator Loss: 0.002168814418837428
Epoch 186/200, Pixel Loss: 0.09145256131887436, Generator Loss: 70.95944213867188, Discriminator Loss: 0.0007078414782881737
Epoch 187/200, Pixel Loss: 0.08214187622070312, Generator Loss: 70.98368835449219, Discriminator Loss: 0.0013454393483698368
Epoch 188/200, Pixel Loss: 0.08131980895996094, Generator Loss: 66.72307586669922, Discriminator Loss: 0.0013674431247636676
Epoch 189/200, Pixel Loss: 0.07883105427026749, Generator Loss: 68.27095794677734, Discriminator Loss: 0.00044815611909143627
Epoch 190/200, Pixel Loss: 0.08761201798915863, Generator Loss: 75.2790298461914, Discriminator Loss: 0.0003012628003489226
Epoch 191/200, Pixel Loss: 0.07558082044124603, Generator Loss: 65.72266387939453, Discriminator Loss: 0.004146029241383076
Epoch 192/200, Pixel Loss: 0.07347965985536575, Generator Loss: 70.05474853515625, Discriminator Loss: 0.0011651460081338882
Epoch 193/200, Pixel Loss: 0.08514854311943054, Generator Loss: 68.02081298828125, Discriminator Loss: 0.004767927806824446
Epoch 194/200, Pixel Loss: 0.1066071093082428, Generator Loss: 47.77150344848633, Discriminator Loss: 0.13204972445964813
Epoch 195/200, Pixel Loss: 0.0734628215432167, Generator Loss: 46.38980484008789, Discriminator Loss: 0.021991940215229988
Epoch 196/200, Pixel Loss: 0.0929371789097786, Generator Loss: 57.631282806396484, Discriminator Loss: 0.003684208495542407
Epoch 197/200, Pixel Loss: 0.08484889566898346, Generator Loss: 62.30564880371094, Discriminator Loss: 0.0033180657774209976
Epoch 198/200, Pixel Loss: 0.08651778101921082, Generator Loss: 60.01272201538086, Discriminator Loss: 0.006522100418806076
Epoch 199/200, Pixel Loss: 0.07100677490234375, Generator Loss: 53.318023681640625, Discriminator Loss: 0.003201252780854702
Epoch 200/200, Pixel Loss: 0.0820435881614685, Generator Loss: 63.6020393371582, Discriminator Loss: 0.017804091796278954
In [ ]:
evaluate(HF_test_loader)
Test set evaluation - Pixel Loss: 0.07331, Generator Loss: 53.03710, Discriminator Loss: 0.08497
In [ ]:
visualize_test_results(HF_test_loader)
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

Combined Noise¶

In [ ]:
class CN_ECGDataset(Dataset):
    def __init__(self, directory):
        self.data = []
        segment_length = 1600  # 2초 길이의 샘플 수

        # 모든 환자 디렉터리 반복
        for patient_num in range(1, 93):
            patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
            seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
            
            for seg_file in seg_files:
                data_file = os.path.join(patient_dir, seg_file)
                header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
                
                num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
                ii_index = channel_names.index('II')
                
                ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
                
                # 각 세그먼트를 2초씩 잘라서 저장
                num_segments = 5
                for i in range(num_segments):
                    start = i * segment_length
                    end = start + segment_length
                    segment_data = {
                        "II": ecg_data[ii_index][start:end]
                    }

                    # II 채널 표준화
                    segment_data["II"] = (segment_data["II"] - np.mean(segment_data["II"])) / np.std(segment_data["II"])

                    # 랜덤 주파수의 high frequency noise와 Gaussian noise를 추가하여 II-Raw 생성
                    random_frequency = np.random.uniform(50, 100)
                    t = np.linspace(0, 2, segment_length, endpoint=False)
                    high_freq_noise = 0.1 * np.sin(2 * np.pi * random_frequency * t)  # 랜덤 주파수의 고주파 노이즈
                    noise = np.random.normal(0, 1, segment_length)                    # 가우시안 노이즈
                    segment_data["II-Raw"] = segment_data["II"] + high_freq_noise + 0.1*noise

                
                    self.data.append(segment_data)

    def parse_header(self, file_path):
        with open(file_path, 'r', encoding='latin1') as file:
            lines = file.readlines()
        num_channels = int(lines[0].split(' ')[1])
        samples_per_channel = int(lines[0].split(' ')[3])
        channel_names = []
        for line in lines[1:num_channels+1]:
            channel_info = line.split(' ')
            channel_names.append(channel_info[-1].strip())
        return num_channels, samples_per_channel, channel_names

    def load_ecg_data(self, num_channels, samples_per_channel, data_file):
        ecg_data = np.fromfile(data_file, dtype='int16')
        ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
        return ecg_data

    def __len__(self):
        return len(self.data)

    def __getitem__(self, idx):
        sample = self.data[idx]
        return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}
    
    
# 데이터셋과 데이터 로더 설정
CN_ecg_dataset = CN_ECGDataset(dataset_directory)
# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(CN_ecg_dataset, [train_size, test_size], generator=seed)

CN_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
CN_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)

optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)

# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(CN_train_loader)
Epoch 1/200, Pixel Loss: 0.4747440218925476, Generator Loss: 31.022550582885742, Discriminator Loss: 0.23913197219371796
Epoch 2/200, Pixel Loss: 0.2666245996952057, Generator Loss: 15.78205680847168, Discriminator Loss: 0.4809510111808777
Epoch 3/200, Pixel Loss: 0.19405366480350494, Generator Loss: 14.903812408447266, Discriminator Loss: 0.2558390498161316
Epoch 4/200, Pixel Loss: 0.14230363070964813, Generator Loss: 11.98863410949707, Discriminator Loss: 0.23683112859725952
Epoch 5/200, Pixel Loss: 0.11851176619529724, Generator Loss: 10.614662170410156, Discriminator Loss: 0.25667285919189453
Epoch 6/200, Pixel Loss: 0.1370728611946106, Generator Loss: 13.853747367858887, Discriminator Loss: 0.34179824590682983
Epoch 7/200, Pixel Loss: 0.10990997403860092, Generator Loss: 9.847068786621094, Discriminator Loss: 0.3587026000022888
Epoch 8/200, Pixel Loss: 0.10573377460241318, Generator Loss: 9.752507209777832, Discriminator Loss: 0.2876115143299103
Epoch 9/200, Pixel Loss: 0.09753002226352692, Generator Loss: 10.446518898010254, Discriminator Loss: 0.3933334946632385
Epoch 10/200, Pixel Loss: 0.10969939827919006, Generator Loss: 11.191719055175781, Discriminator Loss: 0.2902105450630188
Epoch 11/200, Pixel Loss: 0.10747623443603516, Generator Loss: 11.215826034545898, Discriminator Loss: 0.3097339868545532
Epoch 12/200, Pixel Loss: 0.09822549670934677, Generator Loss: 10.93842887878418, Discriminator Loss: 0.24403151869773865
Epoch 13/200, Pixel Loss: 0.11259868741035461, Generator Loss: 12.050930976867676, Discriminator Loss: 0.2841908633708954
Epoch 14/200, Pixel Loss: 0.11072925478219986, Generator Loss: 11.33690071105957, Discriminator Loss: 0.26943373680114746
Epoch 15/200, Pixel Loss: 0.09721643477678299, Generator Loss: 9.151446342468262, Discriminator Loss: 0.40308278799057007
Epoch 16/200, Pixel Loss: 0.09059296548366547, Generator Loss: 8.583141326904297, Discriminator Loss: 0.3741767704486847
Epoch 17/200, Pixel Loss: 0.0971246212720871, Generator Loss: 9.787002563476562, Discriminator Loss: 0.3225569725036621
Epoch 18/200, Pixel Loss: 0.0841655507683754, Generator Loss: 9.291175842285156, Discriminator Loss: 0.426993727684021
Epoch 19/200, Pixel Loss: 0.09031946957111359, Generator Loss: 9.544824600219727, Discriminator Loss: 0.3445151448249817
Epoch 20/200, Pixel Loss: 0.09264728426933289, Generator Loss: 10.413490295410156, Discriminator Loss: 0.30830132961273193
Epoch 21/200, Pixel Loss: 0.09763950854539871, Generator Loss: 11.619040489196777, Discriminator Loss: 0.34046071767807007
Epoch 22/200, Pixel Loss: 0.12090301513671875, Generator Loss: 12.027673721313477, Discriminator Loss: 0.698728621006012
Epoch 23/200, Pixel Loss: 0.09760383516550064, Generator Loss: 11.081528663635254, Discriminator Loss: 0.3329826593399048
Epoch 24/200, Pixel Loss: 0.1004972830414772, Generator Loss: 10.30009651184082, Discriminator Loss: 0.2201015204191208
Epoch 25/200, Pixel Loss: 0.10921529680490494, Generator Loss: 10.582725524902344, Discriminator Loss: 0.5985946655273438
Epoch 26/200, Pixel Loss: 0.09139551967382431, Generator Loss: 10.672637939453125, Discriminator Loss: 0.32692334055900574
Epoch 27/200, Pixel Loss: 0.10217458754777908, Generator Loss: 11.894624710083008, Discriminator Loss: 0.31074368953704834
Epoch 28/200, Pixel Loss: 0.09830063581466675, Generator Loss: 11.367616653442383, Discriminator Loss: 0.37981414794921875
Epoch 29/200, Pixel Loss: 0.09461510181427002, Generator Loss: 11.509258270263672, Discriminator Loss: 0.3465943932533264
Epoch 30/200, Pixel Loss: 0.08864941447973251, Generator Loss: 10.330923080444336, Discriminator Loss: 0.32804733514785767
Epoch 31/200, Pixel Loss: 0.11047827452421188, Generator Loss: 13.24148178100586, Discriminator Loss: 0.24800696969032288
Epoch 32/200, Pixel Loss: 0.09742576628923416, Generator Loss: 11.287513732910156, Discriminator Loss: 0.3235379457473755
Epoch 33/200, Pixel Loss: 0.10074961185455322, Generator Loss: 11.413705825805664, Discriminator Loss: 0.34737032651901245
Epoch 34/200, Pixel Loss: 0.095712810754776, Generator Loss: 11.206323623657227, Discriminator Loss: 0.347724586725235
Epoch 35/200, Pixel Loss: 0.09049027413129807, Generator Loss: 11.382564544677734, Discriminator Loss: 0.4056166708469391
Epoch 36/200, Pixel Loss: 0.09616834670305252, Generator Loss: 11.341226577758789, Discriminator Loss: 0.4301453232765198
Epoch 37/200, Pixel Loss: 0.08370218425989151, Generator Loss: 10.25462532043457, Discriminator Loss: 0.34361302852630615
Epoch 38/200, Pixel Loss: 0.09694917500019073, Generator Loss: 9.872169494628906, Discriminator Loss: 0.4885387122631073
Epoch 39/200, Pixel Loss: 0.10677364468574524, Generator Loss: 12.258674621582031, Discriminator Loss: 0.296620637178421
Epoch 40/200, Pixel Loss: 0.09777458012104034, Generator Loss: 10.216999053955078, Discriminator Loss: 0.6447756290435791
Epoch 41/200, Pixel Loss: 0.09908919781446457, Generator Loss: 10.632287979125977, Discriminator Loss: 0.2758887708187103
Epoch 42/200, Pixel Loss: 0.10056430846452713, Generator Loss: 10.375757217407227, Discriminator Loss: 0.5156914591789246
Epoch 43/200, Pixel Loss: 0.09450218081474304, Generator Loss: 10.29744815826416, Discriminator Loss: 0.2680894434452057
Epoch 44/200, Pixel Loss: 0.08948520570993423, Generator Loss: 11.225872039794922, Discriminator Loss: 0.46133509278297424
Epoch 45/200, Pixel Loss: 0.08653570711612701, Generator Loss: 9.933615684509277, Discriminator Loss: 0.3867543935775757
Epoch 46/200, Pixel Loss: 0.09119081497192383, Generator Loss: 11.907955169677734, Discriminator Loss: 0.40658092498779297
Epoch 47/200, Pixel Loss: 0.09762556105852127, Generator Loss: 10.485044479370117, Discriminator Loss: 0.34780168533325195
Epoch 48/200, Pixel Loss: 0.08940990269184113, Generator Loss: 9.921899795532227, Discriminator Loss: 0.4610334038734436
Epoch 49/200, Pixel Loss: 0.08849126845598221, Generator Loss: 10.703460693359375, Discriminator Loss: 0.43024441599845886
Epoch 50/200, Pixel Loss: 0.08798511326313019, Generator Loss: 10.869039535522461, Discriminator Loss: 0.3991044759750366
Epoch 51/200, Pixel Loss: 0.0841548964381218, Generator Loss: 9.509054183959961, Discriminator Loss: 0.4430578351020813
Epoch 52/200, Pixel Loss: 0.08177827298641205, Generator Loss: 9.52743911743164, Discriminator Loss: 0.4459361433982849
Epoch 53/200, Pixel Loss: 0.08899030834436417, Generator Loss: 10.492025375366211, Discriminator Loss: 0.36303627490997314
Epoch 54/200, Pixel Loss: 0.07985088974237442, Generator Loss: 10.93488883972168, Discriminator Loss: 0.45552489161491394
Epoch 55/200, Pixel Loss: 0.08573248982429504, Generator Loss: 9.79522705078125, Discriminator Loss: 0.4462776482105255
Epoch 56/200, Pixel Loss: 0.08876693248748779, Generator Loss: 12.32525634765625, Discriminator Loss: 0.44287604093551636
Epoch 57/200, Pixel Loss: 0.10019847750663757, Generator Loss: 12.621129989624023, Discriminator Loss: 0.3038245141506195
Epoch 58/200, Pixel Loss: 0.07944542914628983, Generator Loss: 9.80897331237793, Discriminator Loss: 0.4737566411495209
Epoch 59/200, Pixel Loss: 0.09755506366491318, Generator Loss: 12.390379905700684, Discriminator Loss: 0.3840455710887909
Epoch 60/200, Pixel Loss: 0.07892114669084549, Generator Loss: 11.338791847229004, Discriminator Loss: 0.4550325870513916
Epoch 61/200, Pixel Loss: 0.08927717804908752, Generator Loss: 11.83841323852539, Discriminator Loss: 0.3721315264701843
Epoch 62/200, Pixel Loss: 0.09731494635343552, Generator Loss: 12.008613586425781, Discriminator Loss: 0.462106317281723
Epoch 63/200, Pixel Loss: 0.08291877806186676, Generator Loss: 11.962249755859375, Discriminator Loss: 0.37627357244491577
Epoch 64/200, Pixel Loss: 0.08957713842391968, Generator Loss: 11.359752655029297, Discriminator Loss: 0.41459015011787415
Epoch 65/200, Pixel Loss: 0.09437964856624603, Generator Loss: 12.227380752563477, Discriminator Loss: 0.32273828983306885
Epoch 66/200, Pixel Loss: 0.08980512619018555, Generator Loss: 12.71037483215332, Discriminator Loss: 0.36252883076667786
Epoch 67/200, Pixel Loss: 0.09108730405569077, Generator Loss: 11.08703899383545, Discriminator Loss: 0.3032149374485016
Epoch 68/200, Pixel Loss: 0.08779855817556381, Generator Loss: 11.651992797851562, Discriminator Loss: 0.3052314817905426
Epoch 69/200, Pixel Loss: 0.08524949103593826, Generator Loss: 10.82290267944336, Discriminator Loss: 0.5365368127822876
Epoch 70/200, Pixel Loss: 0.09118907898664474, Generator Loss: 12.771327018737793, Discriminator Loss: 0.33502286672592163
Epoch 71/200, Pixel Loss: 0.09025121480226517, Generator Loss: 11.955241203308105, Discriminator Loss: 0.42953941226005554
Epoch 72/200, Pixel Loss: 0.08378042280673981, Generator Loss: 12.358733177185059, Discriminator Loss: 0.36281198263168335
Epoch 73/200, Pixel Loss: 0.08626791089773178, Generator Loss: 12.723119735717773, Discriminator Loss: 0.5114108920097351
Epoch 74/200, Pixel Loss: 0.08726640790700912, Generator Loss: 11.537769317626953, Discriminator Loss: 0.4555104672908783
Epoch 75/200, Pixel Loss: 0.07538662850856781, Generator Loss: 11.35659122467041, Discriminator Loss: 0.35716137290000916
Epoch 76/200, Pixel Loss: 0.08490769565105438, Generator Loss: 10.998489379882812, Discriminator Loss: 0.4183034896850586
Epoch 77/200, Pixel Loss: 0.08882267773151398, Generator Loss: 12.572624206542969, Discriminator Loss: 0.2732360064983368
Epoch 78/200, Pixel Loss: 0.0831640288233757, Generator Loss: 12.572553634643555, Discriminator Loss: 0.37720751762390137
Epoch 79/200, Pixel Loss: 0.08122830837965012, Generator Loss: 12.752347946166992, Discriminator Loss: 0.33797380328178406
Epoch 80/200, Pixel Loss: 0.0813705250620842, Generator Loss: 12.173897743225098, Discriminator Loss: 0.3523319363594055
Epoch 81/200, Pixel Loss: 0.08605992794036865, Generator Loss: 12.565844535827637, Discriminator Loss: 0.31044310331344604
Epoch 82/200, Pixel Loss: 0.09036542475223541, Generator Loss: 12.933181762695312, Discriminator Loss: 0.3288828730583191
Epoch 83/200, Pixel Loss: 0.08218848705291748, Generator Loss: 12.034629821777344, Discriminator Loss: 0.3109252452850342
Epoch 84/200, Pixel Loss: 0.08922874182462692, Generator Loss: 11.99417495727539, Discriminator Loss: 0.3781210780143738
Epoch 85/200, Pixel Loss: 0.08455020934343338, Generator Loss: 13.119961738586426, Discriminator Loss: 0.3849964141845703
Epoch 86/200, Pixel Loss: 0.08165548741817474, Generator Loss: 11.30174446105957, Discriminator Loss: 0.3784202039241791
Epoch 87/200, Pixel Loss: 0.0862070843577385, Generator Loss: 9.952129364013672, Discriminator Loss: 0.399505615234375
Epoch 88/200, Pixel Loss: 0.08369199931621552, Generator Loss: 11.142345428466797, Discriminator Loss: 0.3892256021499634
Epoch 89/200, Pixel Loss: 0.08886756747961044, Generator Loss: 12.81098747253418, Discriminator Loss: 0.329275906085968
Epoch 90/200, Pixel Loss: 0.09431342780590057, Generator Loss: 12.777070045471191, Discriminator Loss: 0.40607595443725586
Epoch 91/200, Pixel Loss: 0.08301691710948944, Generator Loss: 11.915268898010254, Discriminator Loss: 0.42214328050613403
Epoch 92/200, Pixel Loss: 0.08408410847187042, Generator Loss: 11.977315902709961, Discriminator Loss: 0.39364171028137207
Epoch 93/200, Pixel Loss: 0.08269764482975006, Generator Loss: 12.397123336791992, Discriminator Loss: 0.4444001317024231
Epoch 94/200, Pixel Loss: 0.08735988289117813, Generator Loss: 12.069450378417969, Discriminator Loss: 0.4130478501319885
Epoch 95/200, Pixel Loss: 0.08258582651615143, Generator Loss: 12.353033065795898, Discriminator Loss: 0.38142022490501404
Epoch 96/200, Pixel Loss: 0.08467956632375717, Generator Loss: 11.835797309875488, Discriminator Loss: 0.3707878887653351
Epoch 97/200, Pixel Loss: 0.08899138867855072, Generator Loss: 13.202007293701172, Discriminator Loss: 0.3874474763870239
Epoch 98/200, Pixel Loss: 0.08436863124370575, Generator Loss: 12.33779239654541, Discriminator Loss: 0.34164759516716003
Epoch 99/200, Pixel Loss: 0.09010878950357437, Generator Loss: 13.625373840332031, Discriminator Loss: 0.3117262125015259
Epoch 100/200, Pixel Loss: 0.08345804363489151, Generator Loss: 12.033482551574707, Discriminator Loss: 0.409290075302124
Epoch 101/200, Pixel Loss: 0.08553943783044815, Generator Loss: 13.854097366333008, Discriminator Loss: 0.4092511534690857
Epoch 102/200, Pixel Loss: 0.08665426075458527, Generator Loss: 12.065940856933594, Discriminator Loss: 0.5114415884017944
Epoch 103/200, Pixel Loss: 0.09408986568450928, Generator Loss: 13.599966049194336, Discriminator Loss: 0.26843464374542236
Epoch 104/200, Pixel Loss: 0.07850110530853271, Generator Loss: 12.157594680786133, Discriminator Loss: 0.35370299220085144
Epoch 105/200, Pixel Loss: 0.10196170210838318, Generator Loss: 14.237104415893555, Discriminator Loss: 0.3175291419029236
Epoch 106/200, Pixel Loss: 0.0848185122013092, Generator Loss: 12.852320671081543, Discriminator Loss: 0.43321454524993896
Epoch 107/200, Pixel Loss: 0.07901418954133987, Generator Loss: 10.657516479492188, Discriminator Loss: 0.36710384488105774
Epoch 108/200, Pixel Loss: 0.08158800005912781, Generator Loss: 11.993708610534668, Discriminator Loss: 0.35833367705345154
Epoch 109/200, Pixel Loss: 0.08497214317321777, Generator Loss: 12.54736328125, Discriminator Loss: 0.38497546315193176
Epoch 110/200, Pixel Loss: 0.08482156693935394, Generator Loss: 11.184852600097656, Discriminator Loss: 0.3873133659362793
Epoch 111/200, Pixel Loss: 0.0898134782910347, Generator Loss: 13.6397123336792, Discriminator Loss: 0.32590386271476746
Epoch 112/200, Pixel Loss: 0.08046599477529526, Generator Loss: 12.87381362915039, Discriminator Loss: 0.3413409888744354
Epoch 113/200, Pixel Loss: 0.0816807821393013, Generator Loss: 11.120427131652832, Discriminator Loss: 0.44660675525665283
Epoch 114/200, Pixel Loss: 0.0755784809589386, Generator Loss: 11.301904678344727, Discriminator Loss: 0.3769466280937195
Epoch 115/200, Pixel Loss: 0.08739973604679108, Generator Loss: 12.105974197387695, Discriminator Loss: 0.369417667388916
Epoch 116/200, Pixel Loss: 0.08347250521183014, Generator Loss: 12.169988632202148, Discriminator Loss: 0.4215010404586792
Epoch 117/200, Pixel Loss: 0.08699112385511398, Generator Loss: 11.01516056060791, Discriminator Loss: 0.38202863931655884
Epoch 118/200, Pixel Loss: 0.09058406949043274, Generator Loss: 12.558602333068848, Discriminator Loss: 0.45588821172714233
Epoch 119/200, Pixel Loss: 0.08921260386705399, Generator Loss: 12.666949272155762, Discriminator Loss: 0.35236120223999023
Epoch 120/200, Pixel Loss: 0.0864223763346672, Generator Loss: 13.074468612670898, Discriminator Loss: 0.35625338554382324
Epoch 121/200, Pixel Loss: 0.08918775618076324, Generator Loss: 13.45189380645752, Discriminator Loss: 0.4040464758872986
Epoch 122/200, Pixel Loss: 0.07792871445417404, Generator Loss: 12.320481300354004, Discriminator Loss: 0.3931993544101715
Epoch 123/200, Pixel Loss: 0.07879731804132462, Generator Loss: 10.671748161315918, Discriminator Loss: 0.42027974128723145
Epoch 124/200, Pixel Loss: 0.08657073974609375, Generator Loss: 12.215907096862793, Discriminator Loss: 0.34985989332199097
Epoch 125/200, Pixel Loss: 0.0912126675248146, Generator Loss: 11.23438835144043, Discriminator Loss: 0.33238720893859863
Epoch 126/200, Pixel Loss: 0.08254626393318176, Generator Loss: 11.478515625, Discriminator Loss: 0.45672866702079773
Epoch 127/200, Pixel Loss: 0.09234163910150528, Generator Loss: 12.53870964050293, Discriminator Loss: 0.3598511517047882
Epoch 128/200, Pixel Loss: 0.08060016483068466, Generator Loss: 11.748861312866211, Discriminator Loss: 0.4273023009300232
Epoch 129/200, Pixel Loss: 0.08223701268434525, Generator Loss: 11.70383071899414, Discriminator Loss: 0.34349215030670166
Epoch 130/200, Pixel Loss: 0.08122538030147552, Generator Loss: 12.366360664367676, Discriminator Loss: 0.49166160821914673
Epoch 131/200, Pixel Loss: 0.08803749829530716, Generator Loss: 11.719758987426758, Discriminator Loss: 0.33571791648864746
Epoch 132/200, Pixel Loss: 0.08318548649549484, Generator Loss: 12.274337768554688, Discriminator Loss: 0.3814619481563568
Epoch 133/200, Pixel Loss: 0.09109365195035934, Generator Loss: 14.080031394958496, Discriminator Loss: 0.2854726314544678
Epoch 134/200, Pixel Loss: 0.0946521908044815, Generator Loss: 13.927403450012207, Discriminator Loss: 0.30045658349990845
Epoch 135/200, Pixel Loss: 0.07903026044368744, Generator Loss: 12.093971252441406, Discriminator Loss: 0.44062912464141846
Epoch 136/200, Pixel Loss: 0.07308632880449295, Generator Loss: 10.417632102966309, Discriminator Loss: 0.49563416838645935
Epoch 137/200, Pixel Loss: 0.07289940863847733, Generator Loss: 10.327125549316406, Discriminator Loss: 0.5195723176002502
Epoch 138/200, Pixel Loss: 0.07809123396873474, Generator Loss: 10.832743644714355, Discriminator Loss: 0.42092931270599365
Epoch 139/200, Pixel Loss: 0.08718910068273544, Generator Loss: 11.460236549377441, Discriminator Loss: 0.3831127882003784
Epoch 140/200, Pixel Loss: 0.07584980875253677, Generator Loss: 10.447874069213867, Discriminator Loss: 0.4313584566116333
Epoch 141/200, Pixel Loss: 0.07732093334197998, Generator Loss: 11.229884147644043, Discriminator Loss: 0.4605216979980469
Epoch 142/200, Pixel Loss: 0.08261251449584961, Generator Loss: 11.602137565612793, Discriminator Loss: 0.34255027770996094
Epoch 143/200, Pixel Loss: 0.09397479891777039, Generator Loss: 13.176451683044434, Discriminator Loss: 0.29116925597190857
Epoch 144/200, Pixel Loss: 0.08180670440196991, Generator Loss: 11.04958724975586, Discriminator Loss: 0.27900171279907227
Epoch 145/200, Pixel Loss: 0.07765820622444153, Generator Loss: 12.263317108154297, Discriminator Loss: 0.34559768438339233
Epoch 146/200, Pixel Loss: 0.08194143325090408, Generator Loss: 11.625741958618164, Discriminator Loss: 0.3537141680717468
Epoch 147/200, Pixel Loss: 0.07951593399047852, Generator Loss: 10.078556060791016, Discriminator Loss: 0.47764983773231506
Epoch 148/200, Pixel Loss: 0.07645166665315628, Generator Loss: 10.96209716796875, Discriminator Loss: 0.31301796436309814
Epoch 149/200, Pixel Loss: 0.08429031819105148, Generator Loss: 12.07994270324707, Discriminator Loss: 0.2918906807899475
Epoch 150/200, Pixel Loss: 0.08556696027517319, Generator Loss: 12.35547924041748, Discriminator Loss: 0.30438074469566345
Epoch 151/200, Pixel Loss: 0.08405689895153046, Generator Loss: 12.12862491607666, Discriminator Loss: 0.2943841516971588
Epoch 152/200, Pixel Loss: 0.08400845527648926, Generator Loss: 12.909706115722656, Discriminator Loss: 0.3527364134788513
Epoch 153/200, Pixel Loss: 0.07563624531030655, Generator Loss: 12.711509704589844, Discriminator Loss: 0.5056352615356445
Epoch 154/200, Pixel Loss: 0.08060363680124283, Generator Loss: 11.855796813964844, Discriminator Loss: 0.39998552203178406
Epoch 155/200, Pixel Loss: 0.0804172083735466, Generator Loss: 11.418766021728516, Discriminator Loss: 0.38477736711502075
Epoch 156/200, Pixel Loss: 0.08361589908599854, Generator Loss: 12.087803840637207, Discriminator Loss: 0.2599566578865051
Epoch 157/200, Pixel Loss: 0.08510824292898178, Generator Loss: 12.849081039428711, Discriminator Loss: 0.1915033757686615
Epoch 158/200, Pixel Loss: 0.07334581762552261, Generator Loss: 10.126843452453613, Discriminator Loss: 0.41186219453811646
Epoch 159/200, Pixel Loss: 0.079669289290905, Generator Loss: 10.381491661071777, Discriminator Loss: 0.4668070673942566
Epoch 160/200, Pixel Loss: 0.08483634889125824, Generator Loss: 10.630620002746582, Discriminator Loss: 0.4638116955757141
Epoch 161/200, Pixel Loss: 0.08162084221839905, Generator Loss: 9.74163818359375, Discriminator Loss: 0.3599620759487152
Epoch 162/200, Pixel Loss: 0.08244185149669647, Generator Loss: 9.869051933288574, Discriminator Loss: 0.43692681193351746
Epoch 163/200, Pixel Loss: 0.08370938897132874, Generator Loss: 12.106389999389648, Discriminator Loss: 0.27849939465522766
Epoch 164/200, Pixel Loss: 0.08992338180541992, Generator Loss: 11.369993209838867, Discriminator Loss: 0.3128666877746582
Epoch 165/200, Pixel Loss: 0.08053973317146301, Generator Loss: 11.289243698120117, Discriminator Loss: 0.31684672832489014
Epoch 166/200, Pixel Loss: 0.07987372577190399, Generator Loss: 11.648780822753906, Discriminator Loss: 0.3403050899505615
Epoch 167/200, Pixel Loss: 0.07699384540319443, Generator Loss: 10.731595993041992, Discriminator Loss: 0.36686694622039795
Epoch 168/200, Pixel Loss: 0.0778072401881218, Generator Loss: 10.815272331237793, Discriminator Loss: 0.4610109031200409
Epoch 169/200, Pixel Loss: 0.07901829481124878, Generator Loss: 11.222084045410156, Discriminator Loss: 0.3888758420944214
Epoch 170/200, Pixel Loss: 0.08245833963155746, Generator Loss: 11.64522933959961, Discriminator Loss: 0.33543235063552856
Epoch 171/200, Pixel Loss: 0.07768619805574417, Generator Loss: 10.507827758789062, Discriminator Loss: 0.3164084553718567
Epoch 172/200, Pixel Loss: 0.08166120201349258, Generator Loss: 10.720149993896484, Discriminator Loss: 0.36452311277389526
Epoch 173/200, Pixel Loss: 0.07749004662036896, Generator Loss: 9.685996055603027, Discriminator Loss: 0.43922656774520874
Epoch 174/200, Pixel Loss: 0.07934629172086716, Generator Loss: 10.750873565673828, Discriminator Loss: 0.291716992855072
Epoch 175/200, Pixel Loss: 0.08021611720323563, Generator Loss: 10.77381706237793, Discriminator Loss: 0.4702799916267395
Epoch 176/200, Pixel Loss: 0.07679270952939987, Generator Loss: 11.16395092010498, Discriminator Loss: 0.3054104149341583
Epoch 177/200, Pixel Loss: 0.0763092041015625, Generator Loss: 9.313636779785156, Discriminator Loss: 0.4235605001449585
Epoch 178/200, Pixel Loss: 0.07619567960500717, Generator Loss: 11.16636848449707, Discriminator Loss: 0.36909380555152893
Epoch 179/200, Pixel Loss: 0.08336116373538971, Generator Loss: 12.554871559143066, Discriminator Loss: 0.2824118137359619
Epoch 180/200, Pixel Loss: 0.08125588297843933, Generator Loss: 10.732868194580078, Discriminator Loss: 0.3508704900741577
Epoch 181/200, Pixel Loss: 0.08502397686243057, Generator Loss: 11.598455429077148, Discriminator Loss: 0.2809312343597412
Epoch 182/200, Pixel Loss: 0.08152627944946289, Generator Loss: 11.846076965332031, Discriminator Loss: 0.366840660572052
Epoch 183/200, Pixel Loss: 0.08399337530136108, Generator Loss: 11.092729568481445, Discriminator Loss: 0.4250016510486603
Epoch 184/200, Pixel Loss: 0.07976211607456207, Generator Loss: 11.528779983520508, Discriminator Loss: 0.2028714120388031
Epoch 185/200, Pixel Loss: 0.07940841466188431, Generator Loss: 11.285375595092773, Discriminator Loss: 0.34939172863960266
Epoch 186/200, Pixel Loss: 0.08714338392019272, Generator Loss: 11.443855285644531, Discriminator Loss: 0.24958059191703796
Epoch 187/200, Pixel Loss: 0.08141861855983734, Generator Loss: 10.623647689819336, Discriminator Loss: 0.3247373402118683
Epoch 188/200, Pixel Loss: 0.07868865132331848, Generator Loss: 11.275503158569336, Discriminator Loss: 0.26645660400390625
Epoch 189/200, Pixel Loss: 0.09296173602342606, Generator Loss: 12.750076293945312, Discriminator Loss: 0.2399446964263916
Epoch 190/200, Pixel Loss: 0.07351865619421005, Generator Loss: 11.29665756225586, Discriminator Loss: 0.3486873507499695
Epoch 191/200, Pixel Loss: 0.08249965310096741, Generator Loss: 11.439834594726562, Discriminator Loss: 0.48062190413475037
Epoch 192/200, Pixel Loss: 0.07998915016651154, Generator Loss: 11.182112693786621, Discriminator Loss: 0.2183125913143158
Epoch 193/200, Pixel Loss: 0.07443997263908386, Generator Loss: 11.08725357055664, Discriminator Loss: 0.3329043388366699
Epoch 194/200, Pixel Loss: 0.08365359157323837, Generator Loss: 11.048145294189453, Discriminator Loss: 0.3797949552536011
Epoch 195/200, Pixel Loss: 0.08587892353534698, Generator Loss: 12.08578109741211, Discriminator Loss: 0.300812304019928
Epoch 196/200, Pixel Loss: 0.07447803020477295, Generator Loss: 11.379237174987793, Discriminator Loss: 0.34252864122390747
Epoch 197/200, Pixel Loss: 0.08211082220077515, Generator Loss: 12.405838012695312, Discriminator Loss: 0.3794538378715515
Epoch 198/200, Pixel Loss: 0.07875868678092957, Generator Loss: 11.136658668518066, Discriminator Loss: 0.22646522521972656
Epoch 199/200, Pixel Loss: 0.08329061418771744, Generator Loss: 13.049966812133789, Discriminator Loss: 0.32071784138679504
Epoch 200/200, Pixel Loss: 0.08016817271709442, Generator Loss: 11.243612289428711, Discriminator Loss: 0.29161590337753296
In [ ]:
evaluate(CN_test_loader)
Test set evaluation - Pixel Loss: 0.06432, Generator Loss: 9.52207, Discriminator Loss: 0.50117
In [ ]:
visualize_test_results(CN_test_loader)
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [ ]: